枪斗术的电视剧:c语言 会c的来哈8

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 23:50:39
main()
{char str[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是
A) China B)Bejing C)ng D)ing
谁能说明一下个行的意思
说的越详细越好

应当是B虽然str[][10]={"china","beijing"}
但是前面定义的是char 型的所以str[0][1]=china
str[0][2]=beijing *p=str 表示p指向str[0][0]
一个字符占两个字节则p+10指向beijing

楼上解释的真好!Good!

同意一楼的说法,只是我觉得跟那个一个字符占两个字节没关系

一个字符占一个字节

题目明显是错的啊,str相当于二级指针,怎么能直接赋给一级指针p呢?
应该是char *p=(char *)str;

这时候,p指向str[0][0],加10后p指向str[0][9]后面的一个空间,而二维数组在内存中是按行序连续存放的,str[0][9]后面紧接着就是str[1][0],所以p此时实际指向str[1][0],可以看作p指向"Beijing"这个字符串。