求大神解c语言中数组与指针的问题

吃着油条唱歌 2018-07-09 04:31:00
#include<stdio.h>
void main()
{
int a[3];
a[0]=0;
a[1]=1;
a[2]=2;
printf("%d",*a);
}
我问一下明明我没有定义指针为什么可以用 *a 代表 a[0],求大神帮助!初学c的菜鸟拜谢。
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-07-10
  • 打赏
  • 举报
回复
A[B]
*(A+B)
*(B+A)
B[A]
//以上四行等价

"abc"[1]
*("abc"+1)
*(1+"abc")
1["abc"]
//以上四行等价

A[0]
*(A)
0[A]
//以上三行等价
自信男孩 2018-07-10
  • 打赏
  • 举报
回复
a可以理解为指针常量。数组名本身就是地址,可以把a当做指针来用,但需要注意它是指针常量
wang0635 2018-07-10
  • 打赏
  • 举报
回复
a[b] 就是 *(a + b) 的缩写,其中a、b一个是地址,一个是整数,顺序无所谓
月凉西厢 2018-07-10
  • 打赏
  • 举报
回复
尽量不要问这种问题,非常基础。而且答案 c/c++的基础书籍中,都可以轻易找到
棉猴 2018-07-10
  • 打赏
  • 举报
回复
VS2015输出是0啊。
&a和a都是指向数组a的第一个元素的地址,即&a[0]

但是两者也是有区别的。
请参考
《C++中对数组名的运算》
《C++中指针的数组和数组的指针》
希望能够帮到你
Isnis-fallen 2018-07-09
  • 打赏
  • 举报
回复
数组名作为参数传递给函数时,数组名会退化为指针
顾小白xx 2018-07-09
  • 打赏
  • 举报
回复
数组和指针关系了解一下。
Votangroom 2018-07-09
  • 打赏
  • 举报
回复
在仔细看看数组那块的知识吧。。 数组名是可以直接代表数组首单元的地址的。。。

69,371

社区成员

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

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