首页 > 试题广场 >

假设sizeof(void *)为4,sizeof(char

[单选题]
假设sizeof(void *)为4,sizeof(char)为1,那么对于char str[sizeof("ab")],sizeof(str)的值是()
  • 2
  • 3
  • 4
  • 代码无法编译
“ab”字符串尾部有字符串结束符'\0'
发表于 2020-08-08 08:53:12 回复(0)
sizeof计算的是数据结构的大小,以字节计算。 str是数组的首地址,大小是4,和指针类型大小一样。但这并不意味着sizeof(str)的值为4。因为sizeof是计算数据结构的大小,数组就是一种数据结构,因此它计算的是整个数组的大小。 此外,对于" ",编译器都会自动在后面添一个/0,占据一个字节。
发表于 2021-01-05 12:00:09 回复(0)
当使用sizeof运算符时,字符串常量被看作字符串本身,而不是指向字符串起始位置的地址
发表于 2021-03-14 10:24:53 回复(0)
sizeof("ab")== sizeof("a,b,‘\0’);=3个元素  
char类型=1个字节 1*3 = 3个字节
发表于 2021-03-09 20:11:27 回复(0)
sizeof("ab") = 3
char str[3], 该数组大小为3*1,所以答案是3
发表于 2019-08-17 12:36:23 回复(0)
sizeof("ab") = sizeof("a,b,\0");

发表于 2023-08-22 22:03:29 回复(0)
sizeof("ab")==sizeof("a,b,\0"); 
三个元素
发表于 2023-01-26 10:13:02 回复(0)