解释C编程语言中的指针数组


指针是一个存储另一个变量地址的变量。

特点

  • 指针节省内存空间。
  • 由于直接访问内存位置,指针的执行时间更快。
  • 借助指针,可以高效地访问内存,即动态分配和释放内存。
  • 指针与数据结构一起使用。

指针声明和初始化

考虑以下语句:

int qty = 179;

在内存中,变量可以表示如下:

声明指针

这意味着“p”是一个指针变量,它保存另一个整型变量的地址,如下所示:

Int *p;

指针的初始化

地址运算符 (&) 用于初始化指针变量。

例如:int qty = 175;

        int *p;

        p = &qty;

指针数组

它是地址的集合(或)指针的集合。

声明

以下是指针数组的声明:

datatype *pointername [size];

例如:

int *p[5];

它表示一个可以保存5个整型元素地址的指针数组。

初始化

“&”用于初始化。

例如:

int a[3] = {10,20,30};
int *p[3], i;
for (i=0; i<3; i++) (or) 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 ("elements of the array are 
");    for (i=0; i<3; i++)       printf ("%d \t", *p[i]); }

输出

执行上述程序时,会产生以下结果:

elements at the array are : 10 20 30

示例2

以下是指向字符串的指针数组的程序:

 在线演示

#include <stdio.h>
#include <stdlib.h>
int main(void){
   char *a[5] = {"one", "two", "three", "four", "five"};
   int i;
   printf ( "the strings are at locations:
");    for (i=0; i<5; i++)       printf ("%d
", a[i]);    return 0; }

输出

执行上述程序时,会产生以下结果:

The strings are at locations:
4210688
4210692
4210696
4210702
4210707

更新于:2021年3月17日

14K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告