C 中的 Char 指针奇怪的表达

标签 c pointers char expression

我想知道为什么这段代码会运行。

代码:

#include <stdio.h>

int main(int argc, char* argv[])
{
        char* c = "1234567";
        printf("%c\n", 5[c]);

        return 0;
}

结果:

6

最佳答案

如果您对 a[b] 语法感到困惑,那么只需刷新您的 C 知识即可。

a[b] 定义为 *(a + b) 并且由于 a+bb 相同+aa[b]b[a] 也是如此。

关于C 中的 Char 指针奇怪的表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16075260/

相关文章:

c# - 在实际应用方面,C、C# 和 C++ 之间有什么区别?

c - 指针占用多少字节?

c++ - 滥用指针会产生段错误。我仍然不确定如何纠正它

c - Head First C比较操作

C 用移位位交换

c - 这段c代码中的语法错误是什么?

c++ - 指针失败 (C++)

c - 从 char 数组中删除第一个单词并使用 C 中的指针将其打印出来

c - 如何将字符数组的元素与C中的字符进行比较?

perl - 使用 SWIG 将二进制数据移入/移出 Perl