书接上回
这次用字符数组来理解指针,以前看到一句话说,指针是c语言的灵魂,以前不以为然,现在有一点点理解这句话了。指针就是地址,地址就是指针,因为地址,所以它是灵魂啊。
一图解千愁
代码
#include <stdio.h>
int main()
{
const char *s[]={"man","woman","girl","boy","sister"};
printf("指针的地址:\n");
printf("%d\n",s);//指针地址
printf("%d\n",s+1);//指针偏移
printf("%d\n",s+2);//指针偏移
printf("%d\n",s+3);//指针偏移
printf("%d\n",s+4);//指针偏移
printf("\n");
printf("指针的地址:\n");
printf("%d\n",&s[0]);
printf("%d\n",&s[1]);
printf("%d\n",&s[2]);
printf("%d\n",&s[3]);
printf("%d\n",&s[4]);
printf("\n");
printf("指针存放的值:\n");
printf("%d\n",s[0]);
printf("%d\n",s[1]);
printf("%d\n",s[2]);
printf("%d\n",s[3]);
printf("%d\n",s[4]);
printf("\n");
printf("指针存放的值:\n");
printf("%d\n",*(s+0));
printf("%d\n",*(s+1));
printf("%d\n",*(s+2));
printf("%d\n",*(s+3));
printf("%d\n",*(s+4));
//遍历方法一
for(int i=0;i<5;i++){
printf("%s ",s[i]);
}
printf("\n");
//遍历方法二
for(int i=0;i<5;i++){
printf("%s ",*(s+i));
}
printf("\n");
//我要找第5个单词的第6个字母
printf("%c\n",*(*(s+4)+5));
printf("%c\n",*(s[4]+5));
printf("%c\n",s[4][5]);
return 0;
}
运行
指针的地址:
6684144
6684152
6684160
6684168
6684176
指针的地址:
6684144
6684152
6684160
6684168
6684176
指针存放的值:
4214784
4214788
4214794
4214799
4214803
指针存放的值:
4214784
4214788
4214794
4214799
4214803
man woman girl boy sister
man woman girl boy sister
r
r
r