文章目录
一维数组
一维数组的创建与初始化
1.数组的创建
数组是一组相同类型元素的集合
创建方式:
type_t arr_name [const_n]
//type_t是指元素的类型
//arr_name是指数组名
//const_n是一个常量表达式,用来指定数组大小
int arr[10];//创建一个具有10个元素的类型为int的数组
int arr[5+5];//意思与第一个相同
char ch[10];//创建一个具有10个元素的类型为char的数组
double data[20];//创建一个具有20个元素的类型为double的数组
//不初始化数组会报警告,但仍可以正常运行
//变长数组
int n = 10;
int arr[n];
//在C99标准之前,数组的大小必须是常量整型表达式
//在C99之后,可以使用变长数组
//变长数组不可以初始化!!!
2.数组的初始化
//不完全初始化
int arr1[10] = {
1,2,3};//剩余7位补为0
char ch1[10] = {
'a','b','c');//剩余7位补位0
char ch2[20] = "abcde";//剩余14为补为0(字符串自身末尾存在'\0')
//根据初始化内容定义数组大小
int arr2[] = {
1,2,3,4,5);//大小为5
char ch3[] = {
'a','b','c'};//大小为3
char ch4[] = "abc"; //大小为4(字符串末尾有'\0')
//完全初始化
int arr3[5] = {
1,2,3,4,5};
char ch5[3] = {
'a','b','c'};
char ch6[4] = "abc";
一维数组的使用
数组的使用需要用到我们在操作符中所讲到的下标引用操作符[]
下标从0开始,若有n个元素,则最后元素的下标为n-1
int arr[] = {
1,2,3,4,5,6,7,8,9,10};//创建数组
int sz = sizeof(arr)/sizeof(arr[0]);//使用sizeof计算出数组大小
//sizeof(arr)为数组占内存空间总大小 --- 10*4个字节
//sizeof(arr[0])为数组第一个元素占内存空间的大小 --- 4个字节
int i = 0;
//遍历数组进行打印
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
//打印结果 -- 1 2 3 4 5 6 7 8 9 10
在创建数组arr时,相当于在栈区中找了一块连续的空间来存储arr
一维数组在内存中的存储
数组在内存中是一块连续存储的空间,我们通过打印数组每个元素的地址来证明
通过观察我们得知,随着数组下标的增长,元素的地址也在有规律的递增(与数组类型有关),由此我们可以得出结论:数组在内存中是连续存放的
二维数组
二维数组的创建
int arr[3][4];//3行4列
char ch[3][5];//3行5列
double data[4][4];//4行4列
二维数组的初始化
int arr[