int main(int argc, char *argv[])
{
const char *str[] = {"man","woman","girl","boy","sister"};
const char **p = NULL;
// str[0]是一个指针变量,存放的是字符串常量的地址
printf("%d %d\n", str[0], &str[0]);
printf("%d %d\n", sizeof(str[0]), sizeof(&str[0]));
printf("#%s# #%s#\n", str[0], &str[0]);
// 数组名当做指针用
for (int i = 0; i < 4; i++) {
printf("%d %d %s\n", *(str+i), str+i, *(str+i));
}
// 从上面变量的定义可以看到,在使用上*p可以当做str[],那么p可以当做&str[]。
for (int i = 0; i < 4; i++) {
p = &str[i];
printf("%s ", *p);
}
return 1;
}
输出:
4210688 6421984
8 8
#man# ##
4210688 6421984 man
4210692 6421992 woman
4210698 6422000 girl
4210703 6422008 boy
man woman girl boy