C语言指针和数组的关系
数组
#include <stdio.h> main(){ char c[6] = {'h','e','l','l','o','\0'}; printf("第一个字符是%c\n在内存中的地址为%x\n",c[0],&c[0]); printf("第二个字符是%c\n在内存中的地址为%x\n",c[1],&c[1]); printf("第三个字符是%c\n在内存中的地址为%x\n",c[2],&c[2]); printf("第四个字符是%c\n在内存中的地址为%x\n",c[3],&c[3]); printf("第五个字符是%c\n在内存中的地址为%x\n",c[4],&c[4]); printf("第六个字符是%c\n在内存中的地址为%x\n",c[5],&c[5]); printf("数组的开始内存%x\n",c); /* 输出结果: 第一个字符是h 在内存中的地址为28ff30 第二个字符是e 在内存中的地址为28ff31 第三个字符是l 在内存中的地址为28ff32 第四个字符是l 在内存中的地址为28ff33 第五个字符是o 在内存中的地址为28ff34 第六个字符是 在内存中的地址为28ff35 数组的开始内存28ff30 根据输出结果我们可以知道数组是一段连续的内存空间。 数组名就是内存首地址 数组名就是一个指针变量 */ printf("用指针输出字符数组第一个%c\n",*c); printf("用指针输出字符数组第二个%c\n",*(c+1)); printf("用指针输出字符数组第是三个%c\n",*(c+2)); /* 用指针输出字符数组第一个h 用指针输出字符数组第二个e 用指针输出字符数组第是三个l 请按任意键继续. . . */ system("pause"); }
是一段连续的内存空间。
数组名就是内存首地址
数组名就是一个指针变量