C语言:数组

数组:

​ 单个变量
​ 保存一组数据时 数组
​ 数组 是一组同类型的变量

1.数组的定义

​ 数据类型 数组名[数组长度];
​ 数据类型 是指 数组中存储元素的类型
​ 数组名 是 标识符
​ 数组长度 是非负整数类型

int arr[10];  
//声明一个数组  数组名为arr, 数组存储元素的数据类型为int, 数组长度为10,表示最多可以存储10个int类型的数据

2.数组初始化

​ 数组类型 数组名[数组长度] = {数据元素,…};
​ 数组类型 数组名[] = {数据元素,…};
​ //通过初始化元素的个数来决定数组长度
​ 数组初始化必须使用 {} 的形式 少了{}肯定编译通不过
​ 允许的形式:
​ int arr[3] = {1,2,3};//一一赋值
​ int brr[3] = {1,2,3,4};//警告 但不会编译报错 多余的舍弃
​ int crr[3] = {1,2};// 少的部分补0
​ int drr[3] = {0};//全部初始化为0
​ int err[3] = {};//全部初始化为0
​ int frr[3] = {[1]=1,[0]=2};//指定位置元素初始化 其它都为0
​ 适合于只有少数位置有值的时候初始化
​ int grr[] = {1,2,3,…};//由元素个数来决定数组长度
​ int hrr[] = {[0]=1,[2]=3};//数组长度=最大下标+1
​ int irr[] = {};//语法允许 但不会这样用

int arr[3] = 0;//错误
int brr[];     //错误

3.数组变量的访问 – 下标

​ 数组定义了多个同类型的变量 变量名都是和数组名一样 怎么区分这些变量
​ 通过下标访问数组中的元素
​ 数组名[下标] 用来访问数组中的元素
​ 数组的下标: 从0开始递增 最大取值 数组长度-1
​ 下标:[0,数组长度-1]

4.数组名不是一个左值 数组名是一个右值

	int arr[5] = {1,2,3};
​	arr = {1,2,3,4,5};//错误int brr[5] = {1,2,3,4,5};
​	arr = brr;//错误

5.数组一旦定义之后 数组长度不能改变

​ 数组长度 = sizeof(数组名)/sizeof(元素);

6.数组定义之后 只能通过下标的方式进行单一访问

7.可变长数组 定义数组时,数组长度是一个变量

​ 可变长数组 不能用 {}的形式进行初始化
​ 编译阶段,编译器不知道n的大小

int n = 0;scanf("%d",&n);int arr[n];int i = 0;for(;i<n;i++){
​		arr[i] = 0;}

​ 依然可以用 sizeof(arr)/sizeof(arr[0]) 来求数组长度

一维数组

二维数组

1.二维数组的定义:

​ 数据类型 数组名[二维长度][一维长度];
​ 二维长度 理解为 行
​ 一维长度 理解为 列
​ int arr[5][7]; //总共有35个变量

2.二维数组元素的访问

​ 下标: 二维下标 一维下标
​ 下标都是从0开始
​ 确定二维数组的唯一元素 需要2个下标
​ arr[1][3] = 3;

3.二维数组初始化

int arr[3][5];  //垃圾值int brr[3][5] = {{1,2,3,4,5},{4,5,6,7,8},{6,7,8,9,9}};int crr[3][5] = {{1,2,3},{4,5}};int drr[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int err[3][5] = {1,2,3};int frr[3][5] = {[0][1]=1,[2][3]=4,[2][4]=9};int grr[3][5] = {[0]=10,[2]={1,2,3}};int hrr[3][5] = {0};//{{0}} {}

注意:二维数组在定义时不管以哪种方式,一维长度必须明确给定
	二维长度可以不指定  二维长度缺省时必须能完={}形式初始化
int irr[][3] = {{1,2,3},{2,3}};
int jrr[][3] = {};
int krr[][3];    //错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小城微雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值