char *s[]={"first","second","third"};
那么s[0],s[1],s[2]都是char *,也就是指向char类型变量的指针,分别指向
s[0]---->"first"
s[1]---->"second"
s[2]---->"third"
所以他们分别表示三个字符串的内存中存储区域的首地址
以%s方式输出s[0]好理解
以%s方式输出s[1]+1
之前已经解释过了s[1]表示的是字符串"second"在内存中的首地址
s[1]+1这个地址增1,由于是char *,变1表示下一个字符'e'的地址
从这个地址输出字符串,自然就是"econd"
%c方式输出*s[2],s[2]指向"third", *s[2]就是第一个字符't',最后自然输出 t
指针问题,*s[],可以看做是s[][], 这样就好理解了。看做是一个二维数组。如果是做选择题,直接看*s[2] = t.