C语言程序:打印指向字符串的指针数组及其地址


首先,让我们了解一下C语言中的指针数组。

指针数组:(指向字符串)

  • 它是一个数组,其元素是指向字符串基地址的指针。

  • 声明和初始化如下:

char *a[ ] = {"one", "two", "three"};

这里,a[0]是指向字符串“one”基地址的指针。

         a[1]是指向字符串“two”基地址的指针。

         a[2]是指向字符串“three”基地址的指针。

优点

下面解释了指针数组的优点:

  • 与二维字符数组不同,在字符串数组和指向字符串的指针数组中,存储没有固定的内存大小。

  • 字符串只占用所需字节数,因此不会浪费空间。

示例

下面给出了演示打印指向字符串的指针数组及其地址概念的C语言程序:

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers, for loop variable//
   int i;
   char *a[5]={"One","Two","Three","Four","Five"};
   //Printing values within each string location using for loop//
   printf("The values in every string location are : 
");    for(i=0;i<5;i++){       printf("%s
",a[i]);    }    //Printing addresses within each string location using for loop//    printf("The address locations of every string values are :
");    for(i=0;i<5;i++){       printf("%d
",a[i]);    } }

输出

执行上述程序后,将产生以下结果:

The values in every string location are:
One
Two
Three
Four
Five
The address locations of every string values are:
4210688
4210692
4210696
4210702
4210707

示例2

让我们考虑另一个示例。

下面是一个演示指向字符串的指针数组概念的C语言程序:

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers//
   char string[10]="TutorialPoint";
   char *pointer = string;
   //Printing the string using pointer//
   printf("The string is : ");
   while(*pointer!='\0'){
      printf("%s",*pointer);
      pointer++;
   }
}

输出

执行上述程序后,将产生以下结果:

The string is: TutorialPoint

更新于:2021年3月19日

7K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告