有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n",p+10);"

则执行printf语句后输出为什么?为什么?

str[][10]在内存空间的排列如下
'A','o','y','u','n','\0','\0','\0','\0','\0',
'B','e','i','j','i','n','g','\0','\0','\0'。
指针p指向字符‘A’所对应内存单元,p+10则指向'A'后第10个char单元也就是'B'所对应的内存单元,
printf("%s\n",p+10)语句将内存单元(p+10)也就是‘B’开始的字符串输出(直到遇到'B'以后的第一个'\0')。所以输出Beijing。
温馨提示:答案为网友推荐,仅供参考
相似回答