普通变量在栈空间内,地址从大到小存储;而数组,申请一块连续内存,从小到大存储
1. 指针如何引用数组
1.1 指针怎么指向数组
数组名还表示数组首元素的地址
1.2 指针+1 指针-1 指针-指针 指针+指针
对于指针来说,只允许加减不允许乘除
对于指针+1来说,有三种可能:(只有2正确)
1. 加一个字节 //error
2. 加一个格子 //正确 (对于指针来说,加1其实是加上它的类型,比如double* +1相当于加了八个字节)
3. 加一个数组 //error
指针-1:向前进一个格子
指针-指针:如果这两个指针在同一个数组内,指针-指针代表,这两个指针之间有几个格子
指针+指针:无意义 对于指针*2 /2 %2 来说:都不允许,无意义
1.3 如何通过指针的形式访问数组
1.通过数组下标
2.通过指针解引用 *(p+7) //这个是对的 *p+7 //这种不一定对
*(arr+7)==*(7+arr)
1.4 在函数传参的时候,数组名会退化为指针
怎么访问数组内元素值?
1.通过数组下标 arr[7] 7[arr]
2.通过指针解引用去访问 *(arr+7) *(7+arr)
2.字符数组
2.1 字符数组怎么定义,怎么使用?
初始化和普通类型数组初始化一样
字符:用单引号‘’包含的是字符
字符串:0个或多个字符的集合
2.2字符数组和字符串的区别
字符数组和字符串的区别:
1.字符串默认以‘\0’结尾
2.双引号"",表示的字符串结尾会自动接上‘\0’
3.字符数组小心结尾并不是以'\0'结束
0有几种表现形式:0,0.0.'\0',false,NULL