二维数组*(a+1)和*a+1分别代表什么?

sulemon 2004-11-15 02:21:18
例如有一个二维数组a[5][5]

请问 a+1
*(a+1)
*a+1
分别不表示什么?
...全文
2388 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
firespirit 2004-11-15
  • 打赏
  • 举报
回复
reflectwang(沉思)说的确实正解。
通过打印程序输出各项值可知:
a+1 == a[1][0]的地址
*(a+1) == a[1][0]的地址
*a+1 == a[0][1]的地址

打印程序:
#include "stdafx.h"
#include "stdio.h"

int main(void)
{
int a[5][5];
int i, j , num = 0;
for (i = 0 ; i < 5; i ++)
for (j = 0; j < 5; j ++)
{
num ++;
a[i][j] = num;
}

for (i = 0 ; i < 5; i ++)
{
for (j = 0; j < 5; j ++)
{
printf("a[%d][%d] = %d, ",i, j, a[i][j]);
}
printf("\n");
}

printf("a = %d\n", a);
printf("a+1 = %d\n", (a+1));
printf("*(a+1) = %d\n", *(a+1));
printf("*a+1 = %d\n", (*a+1));


return 0;
}

打印输出:
a[0][0] = 1, a[0][1] = 2, a[0][2] = 3, a[0][3] = 4, a[0][4] = 5,
a[1][0] = 6, a[1][1] = 7, a[1][2] = 8, a[1][3] = 9, a[1][4] = 10,
a[2][0] = 11, a[2][1] = 12, a[2][2] = 13, a[2][3] = 14, a[2][4] = 15,
a[3][0] = 16, a[3][1] = 17, a[3][2] = 18, a[3][3] = 19, a[3][4] = 20,
a[4][0] = 21, a[4][1] = 22, a[4][2] = 23, a[4][3] = 24, a[4][4] = 25,
a = 1244956
a+1 = 1244976
*(a+1) = 1244976
*a+1 = 1244960
alphakiller 2004-11-15
  • 打赏
  • 举报
回复
a+1 第一行首地址
*(a+1) 第一行第0列的地址
*a+1 第0行第一列的地址

随便找本c语言的书,上面会讲的很详细
sulemon 2004-11-15
  • 打赏
  • 举报
回复
个人觉得reflectwang(沉思) 说的是正解
hiller888 2004-11-15
  • 打赏
  • 举报
回复
a+1是a[0][1]的地址,*(a+1)则是a[0][1]的数值,*a+1是a[0][0]的数值加1


moany 2004-11-15
  • 打赏
  • 举报
回复
楼上的,你们都测试了吗,就这么说。
我记得书上 好像也都是这么说的,可是为什么这样赋值报错呢?

int x = *(a+1);
somedummy 2004-11-15
  • 打赏
  • 举报
回复
*(a+1)代表的是a[1]

*a+1代表的是a[1][0]
geland 2004-11-15
  • 打赏
  • 举报
回复
这种东西还是要多看C语言基础,基础牢了,学其他的才快
cubooo 2004-11-15
  • 打赏
  • 举报
回复
如果输出的话,a+1是a[0][1]的地址,*(a+1)则是a[0][1]的数值,*a+1是a[0][0]的数值加1
firespirit 2004-11-15
  • 打赏
  • 举报
回复
*(a+1)应该是a[0][1]吧
dudu妈 2004-11-15
  • 打赏
  • 举报
回复
a+1表示a[0][1]的地址
*(a+1)表示a[0][1]的值
*a+1表示a[0][0]的值加1
reflectwang 2004-11-15
  • 打赏
  • 举报
回复
a+1 第一行首地址
*(a+1) 第一行第零列元素地址
*a+1 第0行第一列元素地址
dgyujingjun 2004-11-15
  • 打赏
  • 举报
回复
*(a+1)==a[1][0]

*a+1 == a[0][0]+1

70,012

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧