本文共 738 字,大约阅读时间需要 2 分钟。
&a[0] 和 &a[0] [0] 等价
a + i //第i行的地址 *(a + i) //第i行首元素的地址 *(*a + i) //第i行首元素的值a行元素数组的首地址–行地址–二级指针
*a首行第一个元素的地址–列地址–一级指针下标表示法:a[ i ] [ j ]
指针表示法:* ( * (a + i) + j ) 混合运用:* (a[ i ] + j)使用二级指针方式改写查找奥运五环的位置
#include#include int main(){ int i; char *color [5] = {"red","blue","yellow","green","black"}; char **pc; char str[20]; pc = color; printf("给我一个颜色呗~"); scanf("%s", str); for(i = 0; i < 5; i++){ if(strcmp(str, *(pc + i)) == 0){ break; } } if(i < 5){ printf("报告主人发现目标:%d\n", i + 1); }else{ printf("很抱歉没有找到~\n"); } return 0;}
定义二维字符数组时必须指定列长度,可能会浪费单元
指针数组并不存放字符串,仅仅用数组元素指向各个字符串char ccolor[][7] = {"red","blue","yellow","green","black"};char *pcolor[] = {"red","blue","yellow","green","black"};
转载地址:http://tovrn.baihongyu.com/