main() {
printf("AAA"+2);
printf ("%c","A"+printf(" B")+printf ("C "));
}
任何人都可以告诉我它的输出是什么以及它是如何产生的?
答案 0 :(得分:6)
第1行
printf("AAA"+2);
" AAA"是一个包含四个字符的数组(3 A和null)。因此将从索引2开始打印数组。即" A"
第2行:
printf ("%c","A"+printf(" B")+printf ("C "));
将其划分
printf(" B")
将打印" B"并返回2(根据手册页)
在
printf("C ")
将打印" C"并返回2
所以字符串" A"是一个包含2个字符的数组(A和null)。
但得到了(" A" + 2)+ 2)并且2超出了字符串的范围。
所以这个位未定义