bshy.net
当前位置:首页>>关于i+=j; 怎么理解的资料>>

i+=j; 怎么理解

首先给a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]分别赋值0,1,2,3,4。之后依次类推即可,注意“i”在内循环结束以前是不改变值的

假设数组为 a[2][3] = {{0, 1}, {2, 3}}; i=0, j=1; 则*(*&a[i]+j), *&a[i], *&操作互相抵消, 所以*&a[i]就相当于a[i], 当i=0时, 也就是0的地址, (a[i]+ j), 当i=0, j=1,时, (a[i]+ j)就是 a[0][1]的地址, 于是*(a[i]+ j)就是取内容了...

谁那么脑残啊,考试啊~出这么叼题目;这程序员是考别人吗?程序员自己都可能弄糊涂;谁这么写代码就是大白痴

是的,而且只能这样理解。 ++、--的优先级高于+,因此加不加括号,运算都是一样的,先运算++、--,再运算+

sum*=a[i][j] 就是 sum=sum*a[i][j]

i==(++j)是先j自增在比较 所以这个时候j=2 (i++)==j 是先比较再自增 所以这个时候i还是等于2,比较完成之后i变成3

++被称为自增~ n++叫做后自增~ 那么效果就是n = n +1; 比如n是6 a[i][j]=n++的实际效果就是a[i][j]=6然后进行++操作,这时候再去看n就变成了7

++的优先级大于+,所以i+++j相当于(i++)+j

只有一个知识点:逗号表达式从左到右执行。 我先把你的程序每一个语句写到一行上: main() { int i=2,j; (j=3*i,j+2),j*5; printf("j=%d\n",j); } 只有第三行需要解释吧,其它行我相信你能看明白,看不明白请表述你的疑问,第三行是: (j=3*i,j+...

网站首页 | 网站地图
All rights reserved Powered by www.bshy.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com