首页 > 试题广场 >

在32为系统中,char str[]=”xunlei”;ch

[填空题]
在32位系统中:
char str[]=”xunlei”;
char* p=str;
sizeof(str)= 1
sizeof(p)= 2 ;
sizeof(*p)= 3
本题目考察重点sizeof在指针、字符、数组中的应用:
sizeof(指针)只能返回指针本身占用的字节数而不能确定为它指向的内容分配的空间的大小。
如果硬件架构是IA32,操作系统也是32位,那么一个指针地址的长度就是4个字节
如果硬件架构是IA64,操作系统也是64,那么一个指针地址的长度就是8个字节
sizeof(数组)返回一个数组对象在内存中的字节数(如果是字符数组,则包括结束符) sizeof(字符)返回字符在内存中所占的字节数

编辑于 2016-01-22 14:32:40 回复(0)
更多回答
推荐
答案:7     4      1

指针p指向字符串,但是*p 指向第一个元素
所以sizeof(*p)返回第一个元素所占用的字节数
所以
sizeof(p)=4;  //32位系统指针大小
sizeof(*p)=1。//相当于sizeof(*p[0])
编辑于 2016-01-22 11:03:37 回复(3)
指针p指向第一个元素,故sizeof(*p)应该返回相应值的字节数,做题时一定要注意理解。
发表于 2016-05-22 14:35:39 回复(0)

7 4 1,前两个不说了,都懂,第三个 *p实际上就是str[0],所以是1

发表于 2017-11-20 09:56:34 回复(0)
忘了0了
发表于 2017-05-23 12:53:18 回复(0)
sizeos统计字符串长度会包括'\0'
发表于 2017-04-05 14:40:14 回复(0)
注意指针大小不是一个字节!怎么可能是一个字节嘛
发表于 2016-04-21 23:38:46 回复(0)
 *p是char 类型的----->   1
编辑于 2016-04-13 22:44:22 回复(0)
自己认为是7 4 7
验证为:
7 4 1
发表于 2014-12-12 17:25:47 回复(0)