Last updated on Apr. 25, 2024, created on Apr. 11, 2024.
指针变量共有四种类型,分别为整型指针、double型指针、浮点型指针和字符型指针。
定义整型指针变量:int* ip;
定义double型指针变量:double* dp;
定义浮点型指针变量:float* fp;
定义字符型指针变量:char* cp;
定义空指针变量:int* ip=NULL;
空指针对应的逻辑值为假,非空指针对应的逻辑值为真。
定义double型一维数组指针:double *p[3];
为指针变量赋值:int a=10;ip=&a;
取指针变量所指内存中的值:int b=*ip;
打印指针变量(地址):printf("指针变量ip对应的地址为:%p\n",ip);
打印指针变量所指的内存中存储的值:printf("指针变量ip所指的内存中存储的值为:%d\n",*ip);
二级指针一般用于创建动态二位数组,理解为这个变量是指向一级指针的指针变量。
定义一个空二级指针:int **p;
int **p=malloc(2*sizeof(int*));
p[0]=malloc(3*sizeof(int));
p[1]=malloc(4*sizeof(int));
int *p[2],a[2][2];
p[0]=a[0];
p[1]=a[1];
注意,在例2中,看似定义的p是一级指针,实际上它的每个元素都指向二维数组的一行,因此是一个二级指针,可以使用诸如p[1][1]的指令。
void(double *p[3]){…} //这里定义的是指向含三个元素的一维数组的一级指针p,由于传入A后每个元素又是一个含3个元素的一维数组,因此p相当于main函数中的A
int main(){
int A[3][3]={1,2,3,4,5,6,7,8,9};
fun(A);
}