返回首页

((p+i)+j)

时间:2019-08-26 来源:原创/投稿/转载作者:管理员点击: 162

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  C语言允许把一个二维数组分解为多个一维数组来处理。因此数组a可分解为三个一维数组,即a[0],a[1],a[2]。每一个一维数组又含有四个元素。

  从二维数组的角度来看,a是二维数组名,a代表整个二维数组的首******,也是二维数组0行的首******,等于1000。a+1代表第一行的首******,等于1008。如图:

  a[0]是第一个一维数组的数组名和首******,因此也为1000。*(a+0)或*a是与a[0]等效的, 它表示一维数组a[0]0 号元素的首******,也为1000。&a[0][0]是二维数组a的0行0列元素首******,同样是1000。因此,a,a[0],*(a+0),*a,&a[0][0]是相等的。

  同理,a+1是二维数组1行的首******,等于1008。a[1]是第二个一维数组的数组名和首******,因此也为1008。&a[1][0]是二维数组a的1行0列元素******,也是1008。因此a+1,a[1],*(a+1),&a[1][0]是等同的。

  此外,&a[i]和a[i]也是等同的。因为在二维数组中不能把&a[i]理解为元素a[i]的******,不存在元素a[i]。C语言规定,它是一种******计算方法,表示数组a第i行首******。由此,我们得出:a[i],&a[i],*(a+i)和a+i也都是等同的。

  另外,a[0]也可以看成是a[0]+0,是一维数组a[0]的0号元素的首******,而a[0]+1则是a[0]的1号元素首******,由此可得出a[i]+j则是一维数组a[i]的j号元素首******,它等于&a[i][j]。

  由a[i]=*(a+i)得a[i]+j=*(a+i)+j。由于*(a+i)+j是二维数组a的i行j列元素的首******,所以,该元素的值等于*(*(a+i)+j)。

  第一个回答有问题!大家一定要注意了!int*p[j]才是正确定义二维数组的指针的方法。

【责任编辑:管理员】
随机推荐 更多>>