函数指针、数组指针、字符串指针的定义形式与运算符举例、指针变量做函数参数用法

时间:2023-01-07 16:28:11
一个变量的地址称为该变量的指针;
如果有一个变量专门用来存放另一个变量的地址(即指针),则称它为指针变量;
定义指针变量的一般形式:
  基类型 *指针变量名;
 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;