c - 在 C 中使用 sizeof 运算符

标签 c sizeof

我在 C 中写了一段代码来打印不同数据类型的大小。

#include<stdio.h>
int main()
{
     printf("%d", sizeof(int));//size of integer
     printf("%d", sizeof(float));
     printf("%d", sizeof(double));
     printf("%d", sizeof(char));
}

这不起作用,但如果我将 %d 替换为 %ld,它就会起作用。我不明白为什么我必须使用 long int 来打印一个小范围的数字。

最佳答案

这两个都是错误的,您必须使用 %zu 来打印 size_t 类型的值,这是 sizeof 返回的值。

这是因为不同的值有不同的大小,你必须匹配它们。

像你这样不匹配是未定义的行为,所以任何事情都有可能发生。

关于c - 在 C 中使用 sizeof 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44927489/

相关文章:

c - 如何分配这些结构?

c++ - fRead方法的差异

c - 指向结构打印的指针数组

c++ - 将一种类型的数组转换为另一种类型

c - 如何将 const unsigned char* payLoad 转换为 char* 并复制它?

c - 当数组为空时,ARRAY_SIZE 是否返回未定义的行为?

c++ - c或c++中是否有任何头文件来实现图形,树等数据结构?

arrays - 构建成功,但堆已损坏。使用二维数组

c - 正确的信号处理和中断

c - C 中 sizeof 运算符的行为