一维数组的创建和初始化:
数组的创建:数组是一组相同类型的元素的集合.创建方式如下:
type_t arr_name [const_n];
//type_t表示数组的元素类型
//const_n是一个常量表达式,用来指定数组的大小
在创建数组时一定要注意,[]中要给一个常量才可以,不能使用变量!例如下面的数组创建的实例:
例1:
int arr1[10];
例2:
int count = 10;
int arr2[count];
例3:
char arr3[10];
float arr4[10];
double arr5[10];
当然,取下标时[]中可以使常量也可以时变量.
例如
int i = 0;
arr[i]; //这表示取数组中第i个元素,即取下标.
在这里要注意数组越界(未定义行为).
数组下标访问越界=>访问了非法内存=>未定义行为.
数组的初始化
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化).比如:
int arr1[10] = {1,2,3};
int arr2[] = {1,2,3,4};
int arr3[5] = {1,2,3,4,5};
char arr4[3] = {'a',98,'c'};
char arr5[] = {'a','b','c'};
char arr6[] = "abcdef";
数组在创建的时候如果不想指定数组的大小就要初始化.数组元素的个数根据初始化的内容来确定.但是对于下面的代码要区分,内存中如何分配.
char arr[] = "abc";
char arr2[3] = {'a','b','c'};
一维数组的使用
为了进行访问数组的操作,我们要用到[],下标引用操作符.比如:
#include <stdio.h>
#include <stdlib.h>
int main(){
int arr[10] = { 0 }; //数组初始化
int size = sizeof(arr) / sizeof(arr[10]); //计算数组元素的个数
int i = 0; //定义一个变量i来作为下标
for (i = 0; i < 10; ++i){
arr[i] = i;
}
for (i = 0; i < 10; ++i){
printf("%d ",arr[i]);
}
system("pause");
return 0;
}
数组是使用下标来进行访问的,下标是从0开始;
数组的大小可以通过计算得到.
一维数组在内存中的存储
先来看程序:
#include <stdio.h>
#include <stdlib.h>
int main() {
int arr[10] = { 0 };
int i = 0;
int size = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < size; ++i){
printf("&arr[%d] = %p\n",i,&arr[i]);
}
system("pause");
return 0;
}
结果如图所示:
从结果中,我们不难看出数组在内存中是连续存放的.