指针 :
1.指针的值
如果要在函数之间传递数据(>1)给调用者
什么是指针?指针式一个变量,这个变量只能存地址 ,占 8个字节
使用的时候表示取地址的值
2.取地址的值 == 指针指向的区域的值
3.指针的类型:
指针只能指向同种类型的内存
指针存储的是地址
指向一个普通变量:一级指针,二级指针,三级指针
普通指针变量:int *p
常量指针:
int a= 50;
int const *pa = &a;
*pa = 50;//错误 不能改变指针指向的变量的值
pa = &b;//正确 可以改变指针的指向
指针常量:
int *const pb = &a;
*pb = 50;//正确 可以改变指针指向的变量
pb = &b;//错误 不可改变指针的指向
指向常量的常量指针:
int const *const pc = &a;
*pc = 50;错误 不能改变指针指向的值
*pc = &b;错误 不能改变指针的指向
数组名就是数组的首地址
数组名本身没有分配内存空间
数组是一片联系的内存空间
指针只是一个变量(存地址)
共同点:1.数组也可以用指针的方式取访问
num[0] = 20;
*num = 20;
num[1] = 30;
*(num+1) = 30;
*(num++) = 20;
数组是一个指针常量
数组的指向不能改变,不能对数组名进行运算
int *p = num;
int main(){
int num[] = {1,2,3,4,5,6,7,8,9};
printf("%p\n",num)