一、一维数组
定义:类型说明符 数组名[常量表达式]
例:int a[10]; //10表示数组长度,有十个元素
访问a[10],没有这个元素,只有a[0]~a[9]
a[0]一定存放在低地址
a[9]一定存放在高地址
1.数组初始化:
int a[10] = { 1,2,3,4,5,6,7,8,9,10};
局部变量:int a[10]; //未初始化的局部变量是垃圾值
全局变量:int a[10]; //未初始化的全局变量是0
int a[10] = {1,2,3}; //对部分元素初始化,未初始化的元素变为0
int a[10] = {0}; //所有元素初始化为0
int a[] = {1,2,3,4,5,6,7,8,9,10}; //可以不指定数组长度,但是一定要初始化
#include <stdio.h>
//int a[10]; //未初始化的全局变量是0
int main()
{
#if 0
int a[10]; //定义有10个整型元素的数组,在内存里面连续存储
//int a[0]; //错误
int k;
//int b[k] = {0}; //错误,数组的长度一定是确定的
#endif
//数组的初始化操作
//int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //对所有元素初始化
//int a[10]; //没有初始化,未初始化的局部变量是垃圾值
//int a[10] = {1, 2, 3}; //对部分元素初始化,没有初始化的元素变成0
//int a[] = {1, 2, 3, 4, 5, 6 ,8, 8}; //可以不指定数组长度,但是一定要初始化
int a[10] = {0}; //所有元素初始化成0
//printf("%d\n", a); //错误,不能直接输出整型数组
int i;
for (i = 0; i < sizeof(a) / sizeof(int); i++)
{
printf("%d ", a[i]);
}
printf("\n");
printf("%p\n", &a[0]); //输出数组a首元素的地址
printf("%p\n", a); //a表示数组首元素地址,和&a[0]意义一样
printf("%p\n", &a); //&a表示数组的地址
printf("*********\n");
printf("%p\n", &a[0] + 1);