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

i+=j; 怎么理解

假设数组为 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)就是取内容了...

可以分成两个段来理解: 1.j*=i(意思是j=j*i) 2.在上边j*=i已经给j赋值了,所以i-=i变成了j-=i,和上边同理这是j 3.i++,因为上边j*=i-=i以后就等于j了,j+就是j+1 结果就是j++或者说j+1

相当于有一个四行五列,如果按照行看后面的数比前一个大1,如果从列看下面的比上面的大五,a[i][j]=i*5+j就是把i *5 + j 的结果赋给数组a[i][j]

比方说 int *p,a[2][2]; p=a[0]; 这个是指向第0行第0列 那么a[i]+j就是第i行第j列 &a[i][j] 取a[i][j]地址 *(a+i)+j 就是第i行第j列的值 *(a[i]+j) 第i行第j列的值 *(*(a+i)+j) 先是*(a+i)第i行然后*(a+i)+j第i行第j列的地址 最后*(*(a+i)+j) 第...

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

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

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

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

“ 2的值为2,因为8(即二进制的00001000)向右移两位等于2(即二进制的00000010)。 摘自:百度百科

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