解释 C 编程中指针数组和指向指针的指针的概念
cserver side programmingprogramming更新于 2024/11/23 2:30:00
指针数组
就像任何其他数据类型一样,我们也可以声明一个指针数组。
声明
datatype *pointername [size];
例如,int *p[5]; //它表示一个可以容纳 5 个整数元素地址的指针数组
初始化
‘&’用于初始化
例如,
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (或) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
访问
间接运算符 (*) 用于访问。
例如,
for (i=0, i<3; i++) printf ("%d" *p[i]);
示例
#include<stdio.h> main (){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; //初始化数组的基地址 printf (数组元素为”) for (i=0; i<3; i++) printf ("%d \t", *p[i]); //打印指针数组 getch(); }
输出
数组中的元素为:10 20 30
指向指针的指针
指向指针的指针是一个保存另一个指针地址的变量。
声明
数据类型**pointer_name;
例如,int **p; //p 是一个指向指针的指针
初始化
‘&’ 用于初始化。
例如 −
int a = 10; int *p; int **q; p = &a;
访问
间接运算符 (*) 用于访问。
示例
#include<stdio.h> main (){ int a = 10; int *p; int **q; p = &a; q = &p; printf("a =%d",a); printf("a 值通过指针指向指针 = %d", *p); printf("a 值通过指针指向指针 = %d", **q); }
输出
a=10 a 值通过指针指向指针 = 10 a 值通过指针指向指针 = 10