地址及优先级的有关问题
地址及优先级的问题
Question 1:
为什么会是(int)(&a)-(int)(&b) = 12 ??我觉得是4才对啊
Question 2:
unsigned char a =0xA5;
unsigned char b=~a>>4;
cout<<(int)b<<endl;
《程序员面试宝典》上说>>的优先级比~要高,但是《The C programming language》上2.12节说是~的优秀级高。
但计算结果确实是先计算>>再计算~。怎么解释??
------解决方案--------------------
1.计算两个变量地址间的差值,没什么意义。
2.看标准吧。拿不准就打括号,还方便代码阅读。
------解决方案--------------------
------解决方案--------------------
Question 1:
- C/C++ code
cout<<sizeof(float)<<endl; float a = 1.0f; float b = 0.0f; cout<<&a<<endl; cout<<&b<<endl; cout<<((int)(&a)-(int)(&b))<<endl;
为什么会是(int)(&a)-(int)(&b) = 12 ??我觉得是4才对啊
Question 2:
unsigned char a =0xA5;
unsigned char b=~a>>4;
cout<<(int)b<<endl;
《程序员面试宝典》上说>>的优先级比~要高,但是《The C programming language》上2.12节说是~的优秀级高。
但计算结果确实是先计算>>再计算~。怎么解释??
------解决方案--------------------
1.计算两个变量地址间的差值,没什么意义。
2.看标准吧。拿不准就打括号,还方便代码阅读。
------解决方案--------------------
------解决方案--------------------