指针数组
数组元素全为指针的数组称为指针数组。 (用此处理字符串更方便。
char *c[3]={"我","是","谁"}; //声明定义一个指针函数,c[i]为该元素的指针。
指针数组与二维数组:
(截自百度百科
例子:
#include<stdio.h>
int main(void)
{
char *ColChi[3] = { "红色","绿色","蓝色" };
char ColEng[10];
printf("输入三原色之一的英文名:");
scanf("%s", &ColEng);
if (strcmp(ColEng,"red") ==0) printf("%s\n", ColChi[0]);
else if (strcmp(ColEng, "green") == 0) printf("%s\n", ColChi[1]);
else if (strcmp(ColEng, "blue") == 0) printf("%s\n",ColChi[2]);
return 0;
}
数组指针
数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
char (*p)[3]={}; //p为每行首的地址,p++ 就为下一行的首部地址;3为每行大小。
例子:
#include<stdio.h>
int main(void)
{
char ch[][3] = {"我","是","谁","啊"};
char(*p)[3]; //声明数组指针
int i;
p = ch; //为指针数组赋值
for (i = 0; i < 4; i++) {
printf("%s", *p);
p++; //指向下一行
}
printf("\n");
return 0;
}
结果: