首页 > 试题广场 >

有语句char str[] = "abcde";请问表达式s

[单选题]
有语句char str[] = "abcde";请问表达式sizeof(str)的值是() 
  • 1
  • 4
  • 5
  • 6
推荐
选D。
strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。
而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。
所以选D。
编辑于 2015-02-09 11:26:53 回复(0)
str虽然指代数组的第一个位置,但不是一个指针
发表于 2016-04-22 17:44:58 回复(0)
5个字母加一个空字符\0,一个char一个字节,共6字节
发表于 2015-11-12 22:10:12 回复(2)
strlen():是函数,功能为计算字符串长度,不包括“\0”
sizeof():是操作符,功能是计算字符串大小,包括"\0"
发表于 2020-09-12 21:14:19 回复(0)
sizeof计算占用空间,strlen计算字符大小
发表于 2018-05-17 23:40:49 回复(0)
sizeof(&str)才是4
发表于 2021-03-18 21:14:52 回复(0)
the C programmme 指出:字符串常量以字符数组形式储存,数组各个元素分别放各个字符,并以'\0'标志字符串的结束;
printf("sizeof(char s[]):%d\n",sizeof(s));/*sizeof(char s[]):6*/
其中经常和strlen比较,strlen(s);//返回字符串s的结束标志之前的长度;
但有意思的是在GCC4.9.2-64中,若确定数组的长度,则输出为
printf("sizeof(char s1[5]=“abcde”;):%d\n",sizeof(s));/*sizeof(char s[5]):5*/
具体为啥,目前还不了解,有哪位理解,可补充~——~

发表于 2020-04-28 09:57:45 回复(1)
char类型占1字节; sizeof 是运算符,sizeof()计算数组中数据所占内存大小,sizeof 测量的是字符的分配大小,包括最后的'\0';
发表于 2020-03-20 19:35:54 回复(0)
strlen计算的是字符串的长度。 而sizeof计算的是字符串所占的空间,包括末尾的\n。
发表于 2017-09-11 15:53:52 回复(0)
字符串定义方式默认尾端补\0, 实际数组长度为6,str[5]内为\0, sizeof计算字节数应为6
发表于 2022-09-07 11:04:28 回复(0)
sizeof读取的是整个数组空间的大小,数组直接用“ABC”来初始化数组会系统回在其后默认加入“\0”。
发表于 2021-11-20 17:06:07 回复(0)
sizeof(数组名)表示整个数组的大小,单位是字节,因为str 中有a b c d e   '\0' 所以是6*1等于6。
发表于 2021-11-05 10:12:33 回复(0)
str不要把它理解为指针啊,你要是理解为指针就错了
发表于 2021-02-21 12:12:20 回复(0)
sizeof计算数组占用的字节大小,字符数组最后一个字符’/0’,也占用一个字节。strlen()是计算字符数目,没有’/0’。 sizeof()求的是变量占用的字节,str是字符数组,不是一个字符或者指针。只是str也表示该数组的地址罢了。
发表于 2018-10-27 08:54:19 回复(0)
char类型占1字节;sizeof()计算数组中数据所占内存大小
编辑于 2018-09-11 20:24:21 回复(0)
5+1=6
发表于 2018-07-10 10:56:24 回复(0)