什么是指针数组?
的有关信息介绍如下:同志们他说的是指针数组不是数组指针。 指针数组就是说是一个数组,数组中的每一个成员是一个指针。举例如下: char *a[5]={"tan","li","cheng","fang","zheng"}; 定义指针数组a,存放姓名,a有5个成员,即a[5]是包含5个指针元素的指针数组,5个指针中每个的值是该字符串的首地址,也就是说 a[0]=字符't'的地址 a[1]=字符'l'的地址 a[2]=字符'c'的地址 a[3]=字符'f'的地址 a[4]=字符'z'的地址 为何要这样?因为各个名字是字符串不是单个字符,也就是说它相当于二维数组 tan li cheng fang zheng 也就是相当于有行有列,所以要找到数组中的某一个哪颤字符就要先找到所在的行亏枝即a[i],这里a[i]就是个指针指向每行的第一个字符的地址,*(a[i]+j)就是第i+1行第j+1个元素。也就是说 char *a[5]={"tan","li","cheng","fang","zheng"}; 等价于定义李空败 char a[5][6]={"tan","li","cheng","fang","zheng"}; 只是对于字符串,函数strncpy,strcpy,strcmp,strlen,strcat,strstr,strchr的参数都是指针变量都是一个指向字符串首字符的地址的指针,故用指针数组表示一个二维数组更方便形象,有些数据结构复杂,用指针数组来指向它们,当要改变数据的顺序时只要改变指向它们的指针的顺序不必改变数据本身,这样可以简化问题。指针是个好东西,是c语言的精华。你只要好好看《谭浩强的c程序设计》就会完全明白。