二级指针与指针数组关系

指针数组我们一般用来存放一组字符串,来进行比较或储存的作用,而操作指针数组可以通过两种方式,一种则是直接使用下标方式,而另外一种,则可以通过二级指针。我们可以通过一个非常简明的例子来了解他们之间的关系。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	char* pArray[] = { "apple", "nokia", "google", "samsung", "huawei", NULL };
	// 通常把指针数组的最后一个元素设置为NULL
	// 这样就可以通过while循环直接遍历指针数组
	// 而不需要知道指针数组内部元素的长度
	char** p = pArray;
	// 指针数组可以直接赋值给二级指针
	// pArray是指向一个指针数组首元素的char*类型的指针
	// 对一个 char*类型的指针再引用就是char**类型
	// 通过二级指针遍历指针数组中的内容
	int i = 0;
	while (*p)
	{
		// 两种方法一致
		printf("%s ", *p++);
		printf("%s\n", pArray[i]);
		i++;
	}

	system("pause");
	return 0;
}

 

说说你的想法