C语言指针和数组的关系

时间:2022-09-03 10:24:15

数组

#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");

}

 

是一段连续的内存空间。
            数组名就是内存首地址
             数组名就是一个指针变量