mtwm.net
当前位置:首页 >> 执行 stAtiC int B[5], A[ ][3] ={1,2,3,4,5,6}; ... >>

执行 stAtiC int B[5], A[ ][3] ={1,2,3,4,5,6}; ...

*ptr=a[0][0]=1 *(ptr+2)=a[0][2]=3; *(ptr+4)=a[1][1]=5 最后结果是15,不是24。我已经跑过一遍,不会错的。 ptr是整个数组的首地址,那么*ptr=a[0][0]是无可争议滴!,接着ptr+2,很明显是a[0][2]的地址,因为二维数组在存储的时候是线性存储的...

由于C语言中数组是按行排列的,所以a[2][-2] = a[2][0] 向前移动两个数,也就是a[1][2] = 6 a[1][3]从变量watch窗口中可以看出直接是0.所以结果是6 附内存布局图:

是的,没初始化到的默认为0

int i,j,x=0; static int a[6]={1,2,3}; for(i=0,j=1;i

结果是4 首先是static,静态变量,当你不赋初值时,系统自动赋为0 然后,a[8]的数组的第一个元素是用a[0]表示,当你用static int a[8]={1,2,3,4,5,6}意思是说,a[0]=1,a[1]=2……,a[6]=0,a[7]=0……(6以后你没赋初值,所以系统自动给它赋0) 所以...

你好: 答案选A 17。 因为在for循环中,k为0、2、4、6、8,而*(a+k)是在数组a内按地址取第k个元素,和变量s进行累加,k=0、2、4、6时,a相应的数组值为5、7、1、4,而在k=8时,超出了数组的边界,所以为0. 所以s相加起来为17. 希望我的回答能帮...

y = 17+13+9 = 39

什么问题?

p是一个一维指针,指向a[0]后(即a数组的第一行{1,2,3}),p就相当于一个一维数组,所以,p[1]就是p数组中第二个元素,所以,没有什么不对。

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