当前位置:编程学习 > C/C++ >>

C语言常见问题之字符串数组和字符指针数组问题

通过如下的实例来讲解这个问题:
 
#include <stdio.h>  
  
int main(void)  
{  
    char a[3][4] = {"123", "abc", "edf"};  
    char *p[3];  
    char **pp;  
  
    int i;  
    for(i = 0; i < 3; ++i){  
        p[i] = a[i];  
    }  
    pp = p;  
    for(i = 0; i < 3; ++i){  
        puts(*pp++);  
    }  
  
    return 0;  
}  

 

 
执行结果如下:
 
123  
abc  
edf  

 

 
在上面的例子中,a是一个存储了3个字符串的数组,p是一个存储了3个字符指针的数组,pp是一个指向字符指针对象的指针。
第一个for循环将数组p的3个字符指针分别指向了存储在a中的3个字符串,然后将pp指向了数组p的起始地址,第二个for循环通过pp依次获得了数组p中的3个元素值,即3个字符串的起始地址,再通过函数puts()将3个字符串显示出来。
 
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,