c语言 数组名和下标运算符
【摘要】 @TOC 前言今天讲一些***数组的属性*** 和***下标运算符*** 的一些应用,算是一个必须要掌握的小的知识点了。 一、数组名:前面我们稍微提过数组的属性:数组名就是首元素的首地址,即 &a[0]==a;则:int *p = &a[0] ; 也可写成 int *p = a ;两者一摸一样,平时都是用第二种,因为写起来比较方便。 二、下标运算符 [ ]对于数组:例如: int a[5...
@TOC
前言
今天讲一些***数组的属性*** 和***下标运算符*** 的一些应用,算是一个必须要掌握的小的知识点了。
一、数组名:
前面我们稍微提过数组的属性:数组名就是首元素的首地址,即 &a[0]==a;
则:int *p = &a[0] ; 也可写成 int *p = a ;
两者一摸一样,平时都是用第二种,因为写起来比较方便。
二、下标运算符 [ ]
对于数组:
例如: int a[5] = {5,6,7,8,9}; / / 定义一个数组
由于 数组的名字就是数组的首地址,[ ] 下标运算符里面是偏移量,则 a[0+1]是指数组的首地址向右移动一位,代表指向6这个元素。
前面也讲过 * +空间地址 == 该元素名字,即* &b== b。所以 *a == a[ 0 ],则 *(a+1)== a[1]== 6。对于指针:
int *p =a; / / 指针指向数组的首元素,即 p == &a。
*(p+4)== p[4] == 4[p]; / / 同数组一样
注意: p[4]==4[p],都是下标的偏移计算,是一样的。
总结
这部分比较难理解 ,大家要好好推导。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)