为什么C语言中*(a+i)+j能表示a[i][j]的地址
3个回答
展开全部
a是一个指针,a+i表示a所指位置的下i个内存区,a+j同理。
这个程序的功能是:
交换
a+i
和
a+j
所指内存区的内容,t是中间变量。
就好像你要交换两瓶饮料,一瓶汽水,一瓶果汁,交换它们,要找一个空瓶子,这里,t就是空瓶子
a+i
和
a+j
就是你要交换的两瓶饮料,一共要倒三次,你懂了吧!
这个程序的功能是:
交换
a+i
和
a+j
所指内存区的内容,t是中间变量。
就好像你要交换两瓶饮料,一瓶汽水,一瓶果汁,交换它们,要找一个空瓶子,这里,t就是空瓶子
a+i
和
a+j
就是你要交换的两瓶饮料,一共要倒三次,你懂了吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int
a[2][3]={10,20,30,40,50,60};
printf("%d
",*(*(a+1)+2));
以上的引用能够输出60
因为a是二维数组名,所以它是指向指针的指针(二级指针)。
*(a+1)就是a[1],它是一个一维数组,也是一维数组的首地址(指向一维数组首元素的指针)。*(a+1)+2就是a[1][2]的地址,*(*(a+1)+2)就是a[1][2]。
a[2][3]={10,20,30,40,50,60};
printf("%d
",*(*(a+1)+2));
以上的引用能够输出60
因为a是二维数组名,所以它是指向指针的指针(二级指针)。
*(a+1)就是a[1],它是一个一维数组,也是一维数组的首地址(指向一维数组首元素的指针)。*(a+1)+2就是a[1][2]的地址,*(*(a+1)+2)就是a[1][2]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询