c语言二维数组a 0 与 a 0 的区别,[C/C++]数组与指针——a,a[0],&a,&a[0]区别小结...

1.a,a[0],&a,&a[0]

通过在VS上实验,以下是关于C语言中数组与指针的关系——a,a[0],&a,&a[0]之间的区别小小的总结

对于二维数组a[3][5]

a         int(*)[5]类型      ——即指向的是a[0]

a[0]     int *类型           ——即指向的是a[0][0]

&a       int(*)[3][5]类型  ——即指向的是整个数组的首地址

&a[0]   int(*)[5]类型      ——即指向的是a[0]

对于一维数组a[3]

a         int *类型           ——即指向的是a[0]

a[0]     int *类型           ——即指向的是a[0]

&a       int(*)[3]类型      ——即指向的是整个数组的首地址

&a[0]   int *类型           ——即指向的是a[0]

2.指针数组和指向数组的指针

int *p[5]     指针数组:是数组,但数组中的每个元素都是指针

int (*p)[5]   指向数组的指针:是指针,但它指向的是一个数组,相当于 int a[5]。 *p相当于a,即p=&a,则可合并为int (*p)[5]=&a。

3.指针加1

指针加1要根据指针类型加上一定的值,不同类型的指针加1之后增加的大小不同。

指针只是一个内存地址,但指针指向地址的长度可能不同。

本文不详尽或错误之处,请各位不吝言辞,多多指教~谢谢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值