问题描述
- 同志们,谁能告诉我这个程序的运行结果?
-
#include
int main() {
int a=0;
unsigned ui=0;
if(0>(ui-1))
a=1;printf("%dn",a); printf("%un",ui-1); return 0;
}
解决方案
if(0>(ui-1))这个条件不会满足的,因为 ui 是无符号数
解决方案二:
运行程序后 a=0 为什么呢
解决方案三:
unsigned ui=0;默认就是unsigned int ui=0;if语句不成立,你可以试试unsigned u2=ui-1;输出u2就知道了。
解决方案四:
条件不成立,你可以试试
解决方案五:
明白了。ui是无符号数,ui-1也是无符号数 所以0不可能大于无符号数,所以if表达式不成立。a=0
时间: 2025-01-07 15:51:00