c – 0或1以外的整数的布尔值是多少?
发布时间:2020-12-16 10:41:11 所属栏目:百科 来源:网络整理
导读:我正在编写一个简单的函数来根据一组应该命名为cam1_0.bmp,cam1_1.bmp的文件派生出一个新的文件名,然后尝试了这个. static int suffix = 0;std::string fPre("cam");std::ifstream fs;std::string fName;do { fName = fPre; fName.append(std::to_string(cam
我正在编写一个简单的函数来根据一组应该命名为cam1_0.bmp,cam1_1.bmp的文件派生出一个新的文件名,然后尝试了这个.
static int suffix = 0; std::string fPre("cam"); std::ifstream fs; std::string fName; do { fName = fPre; fName.append(std::to_string(camera)).append("_").append(std::to_string(suffix)).append(".bmp"); fs.open(fName); } while (fs.good() && ++suffix); 这有效,它让我想知道对于0或1以外的数值,相应布尔值的标准定义行为是什么.通过本实验,我知道包括除0以外的负值的所有值都计算为true.根据标准,只有0被认为是假的吗? 解决方法
在C中,整数没有布尔值. (不同的语言有不同的规则,但这个问题是关于C.)
将整数值转换为bool类型(通常隐式完成的转换)的结果已得到很好的定义.将0转换为bool的结果是错误的;将任何非零值转换为bool的结果为true. 这同样适用于浮点值(0.0转换为false,所有其他值转换为true)和指针(空指针转换为false,所有非空指针值转换为true). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读