我正在使用量值函数来计算字符串的大小。它应该印2,但为什么是4?这是密码。
#include <stdio.h>
#include <string.h>
void main()
{
char *b = "ab";
printf(" %d ",sizeof(b));
//printf("%s ",b);
}发布于 2016-02-05 21:04:46
因为在您的平台上,指针是4个字节。或者32位如果你愿意的话。
备注:使用void main()作为main()的签名表明您正在从一本老书中学习C,请小心!
发布于 2016-02-05 21:05:47
sizeof是关键字,而不是函数,它告诉您变量的大小(以字节为单位)。变量b是一个指针,它的大小(在您的系统上)是4个字节。如果想要字符串的长度,请使用strlen函数。
发布于 2016-02-05 21:12:23
char *b = "ab";在您的示例中,b是指向文件中只读字符串文字的指针.在您的情况下,指针在系统中的大小为4。
如果您想找出lenght,您可以使用strlen()这样做。
Sizeof返回传递给它的变量的大小(以字节为单位)。
有趣的事实:你甚至可以打印指针!
printf("%p\n",b);输出的一个例子是:
0x8048555
https://stackoverflow.com/questions/35233462
复制相似问题