99问答网
所有问题
有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n",p+10);"
则执行printf语句后输出为什么?为什么?
举报该问题
推荐答案 2010-09-19
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。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WOBWvvW7z.html
相似回答
大家正在搜
相关问题
设有定义语句:char str[][20]={"Hello"...
有以下程序 main( ) {char str[ ]...
#include<stdio.h> void main() ...
char str[]="abc\0def\0gji",*p=...
c语言程序帮忙解释一下吧。。。 尽量详细点~~
以下程序段的输出结果char str[]="ABCD",*p...
main(){ char str[ ][8]={“Hello...
C语言中有段程序: char str[]="abcd"; 问...