解释 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

相关文章