# 指针数组和二级指针 先看代码 ```c #include #include int main(){ char *lines[5] = { "wangyuedong0", "wangyuedong1", "wangyuedong2", "wangyuedong3", "wangyuedong4" }; char *str1 = lines[1]; char *str2 = *(lines + 3); char c1 = *(*(lines+1)+6); char c2 = (*lines+5)[5]; char c3 = *lines[0] + 2; priintf("str1 = %s\n", str1); printf("str2 = %s\n", str2); printf("c1 = %c\n", c1); printf("c2 = %c\n", c2); printf("c3 = %c\n", c3); system("pause"); return 0; } ``` 为了方便说明问题,我们将上面的字符串数组改成下面的形式,它们都是等价的。 ```c #include #include int main(){ char *string0 = "wangyuedong0"; char *string1 = "wangyuedong1"; char *string2 = "wangyuedong2"; char *string3 = "wangyuedong3"; char *string4 = "wangyuedong4"; char *lines[5]; lines[0] = string0; lines[1] = string1; lines[2] = string2; lines[3] = string3; lines[4] = string4; char *str1 = lines[1]; char *str2 = *(lines+3); char c1 = *(*(lines+4)+6); char c2 = (*lines+5)[5]; char c3 = *lines[0]+2; priintf("str1 = %s\n", str1); printf("str2 = %s\n", str2); printf("c1 = %c\n", c1); printf("c2 = %c\n", c2); printf("c3 = %c\n", c3); system("pause"); return 0; } ```