C指针初始化理解

指针使用前必须初始化,否则不知道指到哪里,有可能指到不存在的空间,也可能指到一个已存在的空间,第一个能报错,第二个
int *p;
int a[10];
p=&a[0];
这是一种初始化,好理解一些。

但是实际使用的时候很多时候写成下面这样
int a[10];
int *p=&a[0];
这种我一开始很不理解,因为 p明明是表示a[0]存放的变量,而p才是存放地址的,运算符 * 是间接寻址或者间接引用运算符,怎么可以把&a[0]的地址赋值给p呢(即把a[0]地址赋值给a[0]存放的变量数值),可能C的设计者为了简化代码特殊设计的,所以我们遇到这种自己想成两步就好了, 即 int *p; p=&a[0],有时候简化的代码真的很容易让人困惑。

不知道这样理解对不,如果不对希望大神留言解答一下,怎么理解比较合适。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值