一、指针的概念
指针就是地址,地址就是指针。
int a=10; 表示 从内存里申请一块区域a,用来存放整型数据10。
printf("%d/n",a);输出为10
printf("%d/n",&a);输出为a的地址。
相当于我们需要自习的时候向学校申请了一教室a,教室的位置在302,这个时候302就是a的地址。我们今天申请的教室是302,所以我们只能在302自习,在今天之内我们自习的地址是不变的,同理在一个程序运行结束前a的地址是不会变的,所以地址a是一个常量。当我们第二次运行程序时,就相当于我们第二天又向学校申请教室,学校随机给你分配了一间教室,这间教室就不一定是302了,所以多次运行程序输出的a的地址会发生改变。
我们知道变量可以赋值,常量是不能赋值。
int a=10;✓
10=200;× 常量不能修改
同理&a=&b;× 常量不能修改
二、指针变量
变量的定义:类型名➕变量名
int a;int是类型名,a是变量名。
int a;定义了int型变量a,可存放int型数据。
int *p;定义了int型变量p,存放int型变量地址
int* p;我们可以把int*认为是类型名,p是变量名,这样我们就定义了一个指针变量p,
p=&a;✓ 表示把a的地址储存到变量p里面,
p=100;× 我们定义了指针变量p,现在p只能存放地址数据,不能存放整数。