main(){
int a = 2 , b =0;
// 声明指针变量
int *pa , *pb;
//为指针变量赋予指针
pa = &a;
pb = &b
//通过指针变量访问变量
b = *pa;
// 将b的值赋予a,此时*pa等同于a,*pb等同于b ,可以理解是变量的不同表达形式。变量由名字和地址组成,得到地址等于得到变量本,可以傲娇的说,其他的都不重要,我只要地址。
*pa = *pb
printf( *pa == a)
}
指针变量用于存放指针;
指针是变量的地址;
变量通过地址存取值,则可以任务变量包含地址,变量由地址构成,通过取地址运算符可以取到变量的地址;
间接访问运算符*,作用于指针变量,可以获取变量。
等于说通过变量来访问存储在内存上的数据,是直接访问。通过指针变量+间接访问运算符访问变量,是间接访问。
亦即 a = *pa 。等于说指针变量可以指向真正的变量本体。
指针的用图:
在函数中修改实参的值,函数接收实参的指针变量。
当向函数传参时,如果想在函数内部改变传给形参的实参值,在函数内部是做不到的,因为调用函数传给函数的实参是副本,副本的地址和本体不一样,不能通过副本修改本体。
此种应用场景下,就可以打破函数的限制,即单向传值的限制。实参能向形参传值,在函数中不能改变实参值的限制。