指针和一维数组
数组可以通过指针来访问每一个元素,
#include <stdio.h>
int main() {
char str[] = "C language pointer";
char *p_str;
p_str = str; //p_str指向str
printf("%s\n",str); //str内容
printf("%s\n",p_str); //p_str指向str即间接访问str数组
printf("%p\n",&str); //str数组首地址
printf("%p\n",p_str); //指针指向地址
printf("%p\n",&p_str); //指针变量的地址
printf("%c\n",*p_str);
printf("%c\n",p_str[0]);
}
运行结果:
C language pointer
C language pointer
0x7ffcb9eda610
0x7ffcb9eda610
0x7ffcb9eda608
C
C
上面的程序中定义了一个char类型的str[]字符串,其实str可以看成是一个由很多个char组成的char类型的数组,每一个字符都是数组中的一个元素。
p_str = str;
这句话的意思是,把p_str指向str(str表示str[]的首地址)。
可以结合不同的输出语句和运行结果理解指针。