数组知识点

本文详细介绍了C语言中的一维和二维数组,包括创建、初始化、使用和内存存储。特别强调了数组越界问题和数组作为函数参数时的注意事项,解释了数组名在不同场景下的含义。
摘要由CSDN通过智能技术生成


一维数组

一维数组的创建与初始化

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[
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值