运算符优先级别的问题
假设有:char a='A',b='B',c;
执行printf("%d",c=a<b--?a+b:a-b);
为什么答案不是130?求大神指教啊 c语言,运算符
[解决办法]
在Debug下直接看汇编代码就知道了。
[解决办法]
你把c定义成int就是130了,这个是由于数据溢出造成的,char的范围是-128~127,130超过其范围了,所以成了负数
发布时间: 2013-04-02 12:35:26 作者: rapoo
运算符优先级别的问题
假设有:char a='A',b='B',c;
执行printf("%d",c=a<b--?a+b:a-b);
为什么答案不是130?求大神指教啊 c语言,运算符
[解决办法]
在Debug下直接看汇编代码就知道了。
[解决办法]
你把c定义成int就是130了,这个是由于数据溢出造成的,char的范围是-128~127,130超过其范围了,所以成了负数