有关C语言中bool类型的思考

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:26   1479   0

在C99标准中加入了非常好用的bool类型,但是今天在写程序的时候,发现一个很有意思的问题,程序如下:

#include <stdio.h>
#include <stdbool.h>

int main(void)
{
        bool a = -1;

        if(a+1)
                printf("aaaaaaaaaaaaa\n");

        return 0;
}

这个程序居然打印出了aaaaaaaaaaaa!惊讶之余,我开始思考为什么会打印呢?经过多方查资料才知道,原来当你给bool类型的值赋值一个非零值得时候,他的值并不是你付给的那个值,而是0x01,占用一个字节空间的数值类型!所以,a+1的就相当于1+1,结果当然是真嘞!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP