符号优先级
问下入门的问题:ton:算法优先级的问题n++优先级为2,++n优先级为3,k=n优先级为16,如图 为什么是先赋值后运算? 这些就是优先级问题 可以 死记http://wenku.baidu.com/link?url=a5_BKzVjHihcbr0VAM9TDDdZ0JMUJIF17K8CdwVLzJGSkIOVjPWq48PR0Mwr_2No9OoibaQ5OhmmD-h9zW-OeeJo9Ni_QAwmsuLGOB-90Yi 这是百度的资料 这题和运算符的优先级无关,如果想认真研究这个问题的话,恐怕你要先颠覆自己对于表达式的理解
简单说,表达式含有表达式的值和表达式的副作用两个属性,
如果n = 1;
n++这个表达式的值是1,表达式的副作用是n的值变为2
具体可参考相关国外的专业C语言教程。 本帖最后由 哥斯拉不说话 于 2015-6-29 17:20 编辑
k = n++; 已知 ++ 优先级 高于 = 的优先级,故先执行 ++, 又 n++ 的意思是 先使用 ,后加1, 故 先将 n 的值赋值给 k(先使用),然后 n = n+1(后加1); 我是新手,我是这么记的,++在前,先自身加1,然后在计算别的;
++在后,先计算别的,然后在加1; 我也是死记的,我就是不理解无论从优先级看 还是从结合性看 还是看赋值表达式看 都该是从右至左为什么会是先 K=n 然后 n++,:shy: 所以请高手指点
其实这事考试才会用到,编程的时候括号可以解决
自己编程的时候,写成这样,不是很好的代码风格 n++是下一次使用之前才加的一,也就是,本次使用的还是n
页:
[1]