首页 > 试题广场 >

如下代码所示,分别用于统计字符串的长度(在32位系统里),那

[单选题]
如下代码所示,分别用于统计字符串的长度(在32位系统里),那么输出的结果分别为()
#include<stdio.h>

void testArgs(char* s) {

        printf("%d\n", sizeof(s));

}

int main() {

        char s[] = "I want to go on vacation";

        printf("%d\n", sizeof(s));

        testArgs(s);

        return 0;

}
  • 25,25

  • 24,24
  • 24,4
  • 25,4
这种题目出现在前端开发就离谱!
发表于 2022-02-15 15:21:28 回复(0)
sizeof(s)和sizeof(*s)区别
发表于 2022-01-16 09:26:46 回复(4)
用strlen的话就少了\0所以会输出24嘛
发表于 2023-05-25 16:14:25 回复(0)
sizeof(a)是整个字符串的大小 sizeof(*a)字符串类型的大小
发表于 2022-02-15 15:50:00 回复(1)
java哪来的指针 我练的不是java字符串吗
发表于 2023-04-03 20:49:51 回复(0)
为啥在64位系统里面,结果是25和8呢
发表于 2022-07-24 10:21:59 回复(2)
Sizeof中包含了'\0',但是计算length(strlen)的时候,这个结束符不会被记录进去
编辑于 2022-07-14 11:41:43 回复(0)
一个是字符串 一个是字符指针
发表于 2022-03-19 13:40:02 回复(2)
Yad头像 Yad
字符串长度不包括 “\0”,一般情况下字符串后面是有个 \0 的但是在使用字符串长度时 \0 是不会被计数的,只会使用其中的有效长度。举个例子,char a []=“China”; 这个长度就等于 5。其实在系统中 a 占了 6 个位置,最后一个放了一个’\0’。但是要是在内存中查看 \0 会被记录,例如计算内存大小的 sizof () 则会识别并记录
发表于 2022-02-10 11:41:26 回复(0)