使用的是VC
main(){
char c1;
if ( 'A'<=c1<='Z' )
{
printf("%s","---" ); //正常输出
}
if ( (c1>='A')&&(c1<='Z') )
{
printf("%s","+++" ); //这里反而没有输出
}
int b;
b=2;
if (1<b<3 )
{
printf("%s","sss" ); //正常输出
}
if ( b>=1 && b<=3 )
{
printf("%s","sss" ); //正常输出
}
}
if ( 'A'<=c1<='Z' )
if (1<b<3 )
这种数学上的用法在c语言里面是不支持的
它只能分段计算
'A'<=c1 的结果再与 <='Z'计算,前者计算的结果是一个bool值,只能是0或1,成立为1,否则为0
同理1<b的结果再与<3追问
if (1<b<3 )
这种数学上的用法在c语言里面是不支持的
它只能分段计算
'A'<=c1 的结果再与 <='Z'计算,前者计算的结果是一个bool值,只能是0或1,成立为1,否则为0
同理1<b的结果再与<3追问
问题是我这样写没有宝座 正常运行的。。所以我觉得蛮奇怪的。
追答不会报错的,只是程序的逻辑是错的
它违背了你的初衷, 你想前面一半的计算结果就是个0或者1
那
0或者1肯定小于'Z'啊,这个就没有意义了
温馨提示:答案为网友推荐,仅供参考