解釋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+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.