1> 基本概念
>格式:
元素类型 数组名[元素个数]
>初始化:
int a[5] = {0, 3, 6, 8, 24};
- 存放多个数据:数据类型相同,地址连续;
- 通过一个数组名读写所有元素;对for语句方便;
2> 数组地址
//思考: 这三个地址区别
#include <stdio.h>
int main()
{
int a[5] = {0, 3, 6, 8, 24};
printf("&a[0] = %p\n", &a[0]);
printf("a = %p\n", a);
printf("&a = %p\n", &a);
return 0;
}
&a[0] 与 a, 都是数组首元素地址,类型为int *;
&a,是这个数组地址,类型为int (*)[5];
3> 下标运算符
访问数组元素需要 *(a+n)这样不方便,就有了下标运算符
指针 [偏移量]
#include <stdio.h>
int main()
{
int a = 10;
int b = 8;
int c = 4;
int d = 3;
int *p = &d;
printf("&a = %p\n", &a);
printf("&b = %p\n", &b);
printf("&c = %p\n", &c);
printf("&d = %p\n", &d);
printf("p[0] = %d\n", p[0]);
printf("p[1] = %d\n", p[1]);
printf("p[2] = %d\n", p[2]);
printf("p[3] = %d\n", p[3]);
return 0;
}
-----------------------------------------------
运行结果:
&a = 0060FEF8
&b = 0060FEF4
&c = 0060FEF0
&d = 0060FEEC
p[0] = 3
p[1] = 4
p[2] = 8
p[3] = 10