指针就是保存地址的变量
指针运算符:& *
&运算符获得变量的地址,它的操作数必须是变量,地址的大小是否与int相同取决于编译器。
&不能对没有地址的东西去取地址。
假定一个数组a[]
&a=&a[0]
指针的定义形式
int *p=&i;(p指向i,p的值是i变量的地址)
int *p,q(p是一个指针,q只是一个普通的变量)
普通变量的值是实际的值
指针变量的值是实际值的变量的地址
作为参数的指针:
假定函数为void f(int *p)
int i; f(&i);
在被调用时得到了某个变量的地址,在函数内部可以通过这个指针访问外面的变量i
*是一个单目运算符,用来访问指针的值所表示的地址上的变量。可以做左值也可以做右值。
理解如下:
假定
int i=12;
int *p=&i;
p是i的地址,而在数值上 *p=i=12
&和 *互相反作用
指针的应用
malloc的应用