首页 > 试题广场 >

执行以下代码段(程序已包含所有必需的头文件)会输出什么结果。

[单选题]
执行以下代码段(程序已包含所有必需的头文件)会输出什么结果()
    char a[] = "abcd", b[10] = "abcd";
    printf("%d, %d", sizeof(a), sizeof(b));

  • 4, 4
  • 4, 10
  • 5, 5
  • 5, 10
若提前定义好数组大小,sizeof()就会返回定义的数组长度,未定义好的话,如题char a[] = "abcd",在扫描时会自动扫到最后一个'\0'结束符后再停止,所以是5个
发表于 2021-12-28 16:45:38 回复(0)
strlen统计\0前面所有字符,不包括\0; sizeof统计分配了的空间,如果没显式分配空间(显式分配空间是指定义数组并指定数组长度),那么就遍历统计,直到遇到\0,会把\0也统计上。
编辑于 2022-01-25 15:20:17 回复(0)
这个是Java???
发表于 2022-03-10 22:18:37 回复(3)
strlen统计\0前面所有字符,不包括\0; sizeof统计分配了的空间,如果没显式分配空间(显式分配空间是指定义数组并指定数组长度),那么就遍历统计,直到遇到\0,会把\0也统计上。
发表于 2022-02-18 10:17:37 回复(0)
a只有两种情况下不代表首地址 一个是siezof 一个是&a
发表于 2022-08-01 10:36:11 回复(0)
strlen统计\0前面所有字符,不包括\0; sizeof统计分配了的空间,如果没显式分配空间(显式分配空间是指定义数组并指定数组长度),那么就遍历统计,直到遇到\0,会把\0也统计上。
发表于 2023-11-08 15:47:19 回复(0)
strlen计算到“\0”停止,sizeof计算所有
发表于 2023-06-27 23:47:36 回复(0)