如果a=3和b=5,这意味着什么?
printf(&a["Ya!Hello! how is this? %s\n"], &b["junk/super"]);
我知道
arr[4]
意味着*(arr+4)
所以我需要知道像"hi there"
这样的表达式意味着什么?编辑-问题可能更清晰:
当字符串用作数组下标时,它传递什么值?
为什么以上的输出是
Hello! how is this? super
? 最佳答案
也就是说,printf相当于:
printf("Hello! how is this? %s\n", "super");
将打印:
Hello! how is this? super
在线演示:http://ideone.com/PVzUP
说明:
当我们写
char s[]="nawaz;
时,然后s[2]
表示字符串s
中的第三个字符。我们可以通过编写"nawaz"[2]
来表达这一点,这也意味着字符串"nawaz"
中的第三个字符。我们也可以写2["nawaz"]
这也意味着字符串中的第三个字符。在您的代码中,printf
使用最后一种形式,即2["nawaz"]
的形式。不过,这不寻常。因此
a["Ya!Hello! how is this? %s\n"]
表示字符串中的第4个字符(因为a
的值是3),如果在&
前面加上a
,则&a["Ya!Hello! how is this? %s\n"]
返回字符串中第4个字符的地址,这意味着在printf中,它相当于:Hello! how is this? %s\n
我希望你能自己解释剩下的。
关于c - 像arr [“hi there”]这样的表达意味着什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6767350/