为什么这样不行呢(关于数组与指针)

laye999 2003-09-29 07:23:53
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
//p=a;这一句为什么不能通过呢?
for(p=a[0];p<a[0]+12;p++)
//for(p=a;p<a[0]+12;p++)如果把p=a[0]换成p=a也不能通过编译,为什么呢,谢谢指点

cout<<*p;
...全文
37 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
junmayang 2003-10-03
  • 打赏
  • 举报
回复
a是二维数组,p是一维指针
daizh 2003-09-29
  • 打赏
  • 举报
回复
to laye999()
a和a[0]虽然都是二维数组的首地址,但是两者的实质含义不同:
a是int**
a[0]是int*
因而p = a类型不匹配,p = a[0]正确。
yuefeng521521521 2003-09-29
  • 打赏
  • 举报
回复
p是int*,而a是int**,类型不匹配
laye999 2003-09-29
  • 打赏
  • 举报
回复
a和a[0]不都是二维数组的首地址吗?

69,369

社区成员

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

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