首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

两个小疑点,请各位帮忙看一下了,谢谢

2012-02-15 
两个小问题,请各位帮忙看一下了,多谢!1.请问一下自增操作符前置与后置的优先级问题,我个人认为是前置的优

两个小问题,请各位帮忙看一下了,多谢!
1.请问一下自增操作符前置与后置的优先级问题,我个人认为是前置的优先级比后置的优先级要高,但书上却写明是后置比前置优先级高,请问一下为什么会这样?
2.
unsigned int dValue = 10;
int nNum = -3;
cout << (dValue + nNum) << endl;
cout << (dValue > nNum?dValue:nNum) << endl;
个人认为nNum应该被转换为unsigned int,这样的话,第一个输出语句就应该是输出一个很大的数才对,但输出的却是7,但第二条输出语句却输出了很大的值,表明nNum确实被转换为unsigned int型,请问一下这种现象是怎么回事?
谢谢各位帮忙解答了!

[解决办法]
1)优先级本人从来没认真仔细研究过,不过我通过编程我能明白
int j=++i;
cout<<j;
int j=i++;
cout<<j;
int j=++i++;
cout<<j;
上机试试看看 明白了
2)
两个做加法时好像没有特别类型转换吧
例如: 3+'a';//这样也可以啊
而A>B?A:B会进行类型转换将装换成同类型
[解决办法]
我解释一下"第一个输出语句就应该是输出一个很大的数才对"为什么错了
-3 实际上是 FFFF FFFD (补码)
转化成unsigned int 也是如此

FFFF FFFD + 0000 000A (10) 会得到 7

这与转换无关

热点排行