C 语言 指针数组

返回上一级

在我们继续学习指针数组的概念之前,先来看一个范例,它用到了一个由 4 个整数组成的数组

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

const int MAX = 3;

int main ()
{
   int  var[] = {9, 99, 999, 9999};
   int i;

   for (i = 0; i < MAX; i++)
   {
      printf("Value of var[%d] = %d\n", i, var[i] );
   }

   printf("\n");
   return 0;
}

编译和运行上面的范例,输出结果如下

$ gcc main.c && a.out
Value of var[0] = 9
Value of var[1] = 99
Value of var[2] = 999

可能存在一种情况,我们想要让数组存储指向 int 或 char 或其他数据类型的指针。

比如下面这种一个指向整数的指针数组的声明:

int *ptr[MAX];

ptr 声明为一个数组,由 MAX 个整数指针组成。 因此,ptr 中的每个元素,都是一个指向 int 值的指针。

下面的范例把 4 个整数保存到一个指针数组中

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

const int MAX = 4;

int main ()
{
   int  var[] = {9, 99, 999, 9999};
   int i, *ptr[MAX];

   for ( i = 0; i < MAX; i++)
   {
      ptr[i] = &var[i]; /* 赋值为整数的地址 */
   }
   for ( i = 0; i < MAX; i++)
   {
      printf("Value of var[%d] = %d\n", i, *ptr[i] );
   }

   printf("\n");

   return 0;
}

编译和运行上面的代码,输出结果如下

$ gcc main.c && a.out
Value of var[0] = 9
Value of var[1] = 99
Value of var[2] = 999
Valu

也可以用一个指向字符的指针数组来存储一个字符串列表

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 */

#include <stdio.h>

const int MAX = 4;

int main ()
{
   char *site[] = {
                   "baidu.com",
                   "tencent.com",
                   "twle.cn",
                   "didi.com",
   };
   int i = 0;

   for ( i = 0; i < MAX; i++)
   {
      printf("Value of site[%d] = %s\n", i, site[i] );
   }
   return 0;
}

编译和运行上面的代码,输出结果如下

$ gcc main.c && a.out
Value of site[0] = baidu.com
Value of site[1] = tencent.com
Value of site[2] = twle.cn
Value of site[3] = didi.com

返回上一级

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.