C语言中的指针 &与*

1. 指针:

指针即地址;指针实现了变量的间接访问方式,变量的指针即变量的地址,存放变量地址的变量是指针变量;

& -- 取地址运算符;取变量的地址;

* -- 指针运算符(或称“间接访问”运算符);取指针变量(地址)的内容;

int i =3;

int *p; --定义指针变量p

p = &i;   -- 等价于 *p = 3;

2. 指针与数组:

数组名即数组的起始地址,即指针(note:不过数组名代表的是一个固定地址,或者可以称为指针常量,不能再被赋值,例如a++等操作时没有意义的,当然作为实参传入函数后,在参数内可以完全当做指针变量来用);

int a[10];

int *p;

p = &a[0];

p = a;

*p = 1 ; 等价于 a[0] = 1;

 p+i == a+i == &a[i];

*(p+i) == *(a+i) =a[i];

p[i] == *(a+i)

函数的形参与实参:

 在定义函数时,函数名后面括弧中的变量名称为形参,在主调函数中调用一个函数时,函数名后括弧中的参数称为实参;只有发生函数调用时,形参才被分配内存单元,调用结束后形参的内存单元也被释放;实参变量对形参变量的数据传递是值传递,即单向传递,只由实参传给形参,不能形参传回给实参;

原文地址:https://www.cnblogs.com/end/p/1765738.html