1一维数组的定义和概念
2一维数组的特别之处
3指针偏移数组
1一位数组的定义和概念:存放字符的变量地址就是数组 int arr[10] ; 这个一维数组这样定义的意思是 它有10个元素大小有10个或者说长度有10 注意一点 在我们访问的时候是 从 0-9 。
2一位数组的特别之处
我们常规的取首地址就是 &arr[0],这么写 感觉就很平淡无味 现在引入一个牛逼的写法 arr 就是首地址 arr就是数组名 数组名就是首地址 所以 首地址 就有两种写法
首先定义两个指针来分别验证对比 用两种取首地址的方式 是否一样 结果是肯定的 。因为不管是函数名 数组名 字符串名 统统都可以理解为入口地址即首地址
3指针偏移数组
指针增量与数组的关系
p+1(指针加1)不代表他的地址数加了一位 而是它和初始化地址敲移了字节数 注意 他所处的地址还是一样的 还是在哪个区域走动 偏移的量取决于定义的类型 。
可以归纳有两种取数组元素值的方法 1下标法 从0开始 访问元素 printf(“访问第一个数组元素 用下标法访问写法和值%d”,*(&arr[0])); 意思是先把取地址&×× 最后把地址的值取出 就是*(&xxx)这里的括号要有 或者 可以把*(&xxx)等效于xxx 2指针法访问
通过偏移的方式 达到各个元素的地址
printf(“通过指针偏移访问各个元素地址并把值取出%d”,*(arr+1)); arr因为是 数组名所以数组名就是入口地址 即首地址 加一之后还是地址 最后要*运算符 才能把地址的值取出
最后 归纳 数组的首地址 有两种方式 1arr 数组名就是首地址 2&arr[0] 指针的增量和数组的关系 当指针偏移时 并不是偏移一个地址 而是在同个区域 同个地址 偏移了字节数 偏移的量 取决于定义的类型 int是四个字节 char是一个字节 。
大家好好冲 !!!!!!!