下面给出的是 str
初始化为“face”的 C 代码片段:
char *str = "face";
printf("%d\n", -2[str]);
最佳答案
首先,我们需要解析有问题的表达式:我们在 -2[str]
中有两个运算符 - 一个下标运算符 []
和一个一元减号运算符 -
。下标运算符有 higher precedence不是一元减号,所以 printf
打印 2[str]
* 的否定。
2[str]
等同于str[2]
的问答很多,我就不重复解释了;你可以阅读它in this Q&A .
最后,str[2]
的值为'c'
,表示您系统上的99
代码。对该值应用否定,所以这就是 -99
的打印方式。
* 请注意,-
不是整数常量的一部分,因为 in C integer constants do not include sign .
关于c - 以下代码如何将输出作为 -99?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49967237/