一个变量的地址称为该变量的指针;
如果有一个变量专门用来存放另一个变量的地址(即指针),则称它为指针变量;
定义指针变量的一般形式:
基类型 *指针变量名;
float *pointer_1;
char *pointer_2;
指针变量的赋值:
int i,j;
int *pointer_1,*pointer_2;
pointer_1=&i;pointer_2=&j;
指针变量的引用:
指针变量中只能存放地址,不要将一个整数(或其他任何非指针类型的数据)复制给一个指针变量。
两个有关的运算符:
& 取地址运算符
* 指针运算符,取地址所指向的对象的内容。
指针变量作为函数参数:将一个变量的地址传送到另一个函数中去;
数组与指针:
int a[10];
int *p;
p=&a[1];
C语言规定数组名代表数组中首元素的地址;因此下面两个语句等价
p=&a[0];
p=a;
在定义指针变量时可以对它赋予初值:
int *p=&a[0]; 等效于: int *p; p=&a[0];
也可以写成: int *p=a;
字符串与指针:
char *str="I love China"; 等价于: char *str; str="I love China";
在输出时要用 printf("%s\n",str);
指向函数的指针:
int max(int,int);
int (*p)(int,int);
int a,b,c;
p=max;
c=(*p)(a,b);
定义方法: 数据类型 (*指针变量名)(函数参数表列);/*数据类型是指函数返回值的类型。
返回指针指的函数:
定义方法: 类型名 *函数名(参数表列);
指针数组和指向指针的指针:
指针数组: 类型名 *数组名[数组长度]; int *p[4];
指向指针的指针: char **p;