#include <stdio.h> int main() { int a,b,c,d; unsigned u,v; a=1,b=3,c=6,d=-7; u=a+b; v=c+d;
解决时间 2021-01-26 21:37
- 提问者网友:夢醒日落
- 2021-01-26 12:24
#include
int main()
{
int a,b,c,d;
unsigned u,v;
a=1,b=3,c=6,d=-7;
u=a+b;
v=c+d;
printf("u=%d,v=%d\n",u,v);
return ;
}
最后的结果是什么
最佳答案
- 五星知识达人网友:蓝房子
- 2021-01-26 12:42
u=a+b=1+3=4
v=c+d=6+-7=-1
虽然u v都是unsigned 的
但是按照%d输出 还是会转为有符号
所以
输出是
u=4,v=-1
全部回答
- 1楼网友:神鬼未生
- 2021-01-26 14:25
c++先运算(++的优先级高于+),但是由于是++在后所有实际参与运算的c的值是原值,而不是加过以后的值
然后再算b+(c++): 2+3
根据前面的分析c做了加一运算,所以c最终结果为4
a=5,c=4
- 2楼网友:往事隔山水
- 2021-01-26 12:53
输出是:
u=4,v=-1
因为输出都是按有符号十进制int型的。此代码return后少了个整数。
我要举报
大家都在看
推荐资讯