杭州嘉里中心女装品牌:·c语言的问题!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 17:00:10
有以下程序 b
?main()
{char str[][10]={"China","Beijing"},*p=str;
?printf("%s\n",p+10);
?}
?? 程序运行后的输出结果是
?? A) China B)Bejing C)ng D)ing
可是答案是B啊

是B,由于你是用数组来存储字符串的,在你对数组赋值前数组的空间已经被定义好了2个元素,每个元素是10个字节的空间,虽然你赋值"China"是6个字符,但是p是按数组的真实内存空间移动位置的,所以p+10是指向第二个元素的首地址至于china\0 后面的4个里面是什么,按照数组初始化规则,里面是补0的

str[0][10]="china ";
str[1][10]="bejing ";
多余的地方补空格,但也存在,

应该选B

作案就是B 了,我已经试过了,至于为什么
还得研究一下
好多都忘记了

当然是B啦
*p是地址
2维数组只要写明列数就可以了

str[][10]={"China","Beijing"}
str[]存放China
str[10]存放Beijing
str[]也为十个元素

编译不通过