c - 为什么这段代码的输出是4?

标签 c string sizeof

我正在使用 sizeof 函数来计算字符串的大小。 它应该打印 2。但为什么是 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 - 为什么这段代码的输出是4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233462/

相关文章:

Java:将字符串解析为 double

c++ - 64 位机器上 int 和 sizeof int 指针的大小

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

c -++resultLen * sizeof(float)); 是什么意思?意味着什么?

c - 用C发送ARP包

c - 字符*如何工作?

c++ - std::copy with return values - 防止 "expression: string iterators incompatible"的更好方法?

c++ - 混淆使用 sizeof(…) 运算符结果

c - sendto 在发送时没有给出错误

C 循环遍历一个小数组并添加到一个大数组