sd53852728 发表于 2015-6-28 17:58:09

符号优先级

问下入门的问题:ton:算法优先级的问题n++优先级为2,++n优先级为3,k=n优先级为16,如图 为什么是先赋值后运算?

小人 发表于 2015-6-28 18:23:58

这些就是优先级问题   可以 死记
http://wenku.baidu.com/link?url=a5_BKzVjHihcbr0VAM9TDDdZ0JMUJIF17K8CdwVLzJGSkIOVjPWq48PR0Mwr_2No9OoibaQ5OhmmD-h9zW-OeeJo9Ni_QAwmsuLGOB-90Yi 这是百度的资料

仰望天上的光 发表于 2015-6-28 20:51:35

这题和运算符的优先级无关,如果想认真研究这个问题的话,恐怕你要先颠覆自己对于表达式的理解

简单说,表达式含有表达式的值和表达式的副作用两个属性,
如果n = 1;
n++这个表达式的值是1,表达式的副作用是n的值变为2
具体可参考相关国外的专业C语言教程。

哥斯拉不说话 发表于 2015-6-29 17:16:06

本帖最后由 哥斯拉不说话 于 2015-6-29 17:20 编辑

k = n++; 已知 ++ 优先级 高于 = 的优先级,故先执行 ++, 又 n++ 的意思是 先使用 ,后加1, 故 先将 n 的值赋值给 k(先使用),然后 n = n+1(后加1);

x15810803158 发表于 2015-6-29 21:08:14

我是新手,我是这么记的,++在前,先自身加1,然后在计算别的;
   
                                     ++在后,先计算别的,然后在加1;

sd53852728 发表于 2015-6-29 22:03:32

我也是死记的,我就是不理解无论从优先级看 还是从结合性看 还是看赋值表达式看 都该是从右至左为什么会是先 K=n 然后 n++,:shy: 所以请高手指点

liveloo 发表于 2015-7-1 22:10:46

其实这事考试才会用到,编程的时候括号可以解决
自己编程的时候,写成这样,不是很好的代码风格

nin98 发表于 2015-7-8 18:52:53

n++是下一次使用之前才加的一,也就是,本次使用的还是n
页: [1]
查看完整版本: 符号优先级