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