c - C的sizeof()函数

标签 c

<分区>

#include<stdio.h>
void main()
{
int a=2;
if ((sizeof(a))>-1)
printf("a");
else
printf("b");
}

为什么程序输出为b

当sizeof(a) = 4时,大于(-1)

最佳答案

sizeof返回 size_t (这是实现定义的无符号整数类型)。

所以 -1 也被转换为 unsigned。假设 two's complement负整数的表示,(unsigned)-1 大于 (unsigned)4,因此输出为 b

关于c - C的sizeof()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977591/

相关文章:

c - 在 c 中从字符串中解析数字比 strtok 更好的选择?

c - 使用 MPI 时从数组中提取值时出现垃圾值

c - 在 Mac 上安装 flex(词法分析器)

c - 如何将此递归转换为循环?

c - Frama-C:Jessie 插件无法证明按位或安全(w.r.t. 溢出)

c - 函数没有返回它应该返回的地方

c - gdb: 当前上下文中没有符号 "i"

c - 我的程序没有正确处理字符串的值

c++ - 我的程序在不同的机器上给出不同的输出..!

c++ - C 或 C++。如何比较给定 char * 指针的两个字符串?