为什么这段代码的输出是4?
Why is the output of this code is 4?
我正在使用 sizeof 函数来计算字符串的大小。
它应该打印 2.But 为什么是 4?
这是代码。
#include <stdio.h>
#include <string.h>
void main()
{
char *b = "ab";
printf(" %d ",sizeof(b));
//printf("%s ",b);
}
因为在您的平台上指针是 4 个字节。如果您愿意,也可以选择 32 位。
注意:使用void main()
作为main()
的签名表明你正在从一本旧书上学习c,小心!
sizeof
是关键字,不是函数,它告诉您变量的大小(以字节为单位)。变量 b
是一个指针,它的大小(在您的系统上)是 4 个字节。如果需要字符串的长度,请使用 strlen
函数。
char *b = "ab";
在您的例子中,b
是指向文件中只读字符串文字的指针。你的例子中的指针在你的系统中大小为 4。
如果你想知道长度,你可以使用strlen()
来实现。
Sizeof returns 您传递给它的变量的大小(以字节为单位)。
有趣的事实:您甚至可以打印指针!
printf("%p\n",b);
输出示例为:
0x8048555
我正在使用 sizeof 函数来计算字符串的大小。 它应该打印 2.But 为什么是 4? 这是代码。
#include <stdio.h>
#include <string.h>
void main()
{
char *b = "ab";
printf(" %d ",sizeof(b));
//printf("%s ",b);
}
因为在您的平台上指针是 4 个字节。如果您愿意,也可以选择 32 位。
注意:使用void main()
作为main()
的签名表明你正在从一本旧书上学习c,小心!
sizeof
是关键字,不是函数,它告诉您变量的大小(以字节为单位)。变量 b
是一个指针,它的大小(在您的系统上)是 4 个字节。如果需要字符串的长度,请使用 strlen
函数。
char *b = "ab";
在您的例子中,b
是指向文件中只读字符串文字的指针。你的例子中的指针在你的系统中大小为 4。
如果你想知道长度,你可以使用strlen()
来实现。
Sizeof returns 您传递给它的变量的大小(以字节为单位)。
有趣的事实:您甚至可以打印指针!
printf("%p\n",b);
输出示例为:
0x8048555