sizeof()运算符的行为
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sizeof()运算符的行为相关的知识,希望对你有一定的参考价值。
对于以下代码:
char a[] = "Apple";
char *s[] = {"Apple"};
printf("%d %d
", sizeof(a), sizeof(s[0]));
输出是:
6 4
有人能告诉我为什么sizeof()
提供不同的输出?
编辑:我本来打算打字输入sizeof()
,但输入的是strlen()
。我为此道歉。我现在已经编辑了这个声明。
答案
sizeof(a)
是数组的大小,包含终结符以及5个可打印字符。
strlen(s[0])
给出字符串的长度,不包括终结符,因为这是strlen
指定要做的。
更新:sizeof(s[0])
是指针的大小。只给出指向它的指针,就无法确定数组的大小。
另一答案
sizeof
为您提供分配给char
的a
s的数量,而strlen
为您提供a
中可用字符串的长度。
另一答案