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语言 ,