当前位置: 首页 > news >正文

小白学C语言(知识版)丨DAY 5

一维数组

1.一维数组概念

数组:是相同类型元素的一个集合。在内存中是一段连续的空间。

2.一维数组创建和初始化

一维数组创建基本语法:type arr_name[常量值];
省略数组的长度,程序会根据数组元素个数推导出输出长度

3.一维数组使用

3.1数组下标

C语言规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于 数组元素的编号

3.2通过数组下标访问元素

访问元素的方式为:数组名[下标]
3.2.1访问单独数据
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arr[2]);//输出3
printf("%d\n",arr[7]);//输出8
return 0;
}
3.2.2访问数组当中的所有数据
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
3.2.3给数组输入元素
#include<stdio.h>
int main()
{
int arr[5];
int i = 0;
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
}
for (i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}

4.一维数组在内存当中的存储

我们知道数组的定义是相同类型元素的一个集合。在内存中是一段连续的空间。
意味着每个元素与每个元素之间内存是连续的。
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
for (i = 0; i < 10; i++)
{
//这里打印地址的时候采用的是十进制,方便同学们可以看懂。事实上使用%p也是可以的
printf("&arr[%d] = %d\n", i, &arr[i]);
}
return 0;
}

5. sizeof与数组

我们可以通过sizeof(数组名)来计算整个数组的字节大小。
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", sizeof(arr));
return 0;
}
计算整个数组的长度:
sizeof(arr)/sizeof(arr[0]

二维数组

1.二维数组的概念

二维数组是相同数据类型元素按行和列排列的矩形集合,可以把二维数组写成行和列的排列形式来理解二维数组的逻辑结构。
站在一维数组的基础上理解二维数组,可以理解为:二维数组是把一维数组作为数组的元素。

2.二维数组的创建和初始化

type arr_name[常量值1][常量值2]
二维数组定义的时候可以省略行,不能省略列。(程序会根据列自动推导出行)

3.二维数组的使用

3.1二维数组下标
二维数组的访问也是通过[]的方式进行访问,如上图所示如果要确定数据3的位置,我们可以通过行和列确定。行 为0,列为2.C语言中确定方式为:数组名[][]的方式。

3.2通过数组下标访问元素

给数组输入元素
#include<stdio.h>
int main()
{
int arr[2][3];
int row = 2;
int col = 3;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
http://www.gsyq.cn/news/104734.html

相关文章:

  • LobeChat与FastAPI后端整合方案:构建完整AI服务链路
  • 24小时从0到1:React+Web3.js极速开发DApp MVP的完整避坑指南
  • Java容器化应用配置
  • 程序员的数学(十一)算法优化中的数学思维:从暴力到高效的蜕变
  • 企业为什么更适合“小Agent + 明确边界”,而不是通用Agent?
  • 基于Qwen3-8B构建智能对话系统:从ollama下载到部署
  • 模块化公链的2025:动态分片、AI审计与量子安全的成本革命
  • 清华源anaconda镜像配置加快Qwen3-32B环境搭建
  • 4、主窗口开发:SDI 与 MDI 应用详解
  • 清华源镜像站加速Qwen3-32B模型下载速度实测
  • 5、Qt模型视图框架:从基础到高级应用
  • 基于Java springboot高校班主任量化打分系统(源码+运行视频+讲解视频)
  • 解决 Habitat 模拟器启动失败:EGL 与 CUDA 设备不匹配问题(unable to find CUDA device 0 among 3 EGL devices in total)
  • 放弃主灯后,我的家反而更亮眼了
  • python -m venv(Python 内置虚拟环境工具)和 conda create(Anaconda/Miniconda 环境管理工具)
  • K8S-组件介绍
  • Qwen3-14B与ollama下载配置兼容性问题解决方案
  • SAP CDS---拼接字段和类型转换和join关联
  • web服务器常见配置搭建详解(超详细)
  • 基于Windows Server 2025快速搭建开发测试环境
  • GEO优化数据统计分析系统:DeepAnaX如何以智能数据引擎重塑AI时代的营销竞争力
  • 基于SpringBoot2+Vue2的行业知识答题考试系统
  • AI如何帮你轻松搞定正则表达式?
  • 盘点游戏生化危机中人类战力梯队排名
  • 5分钟搭建ORA-01033诊断工具原型
  • 2025年电饭煲如何选?十大易清洗型号推荐,从此告别清洁烦恼 - 品牌推荐排行榜
  • LobeChat能否支持GraphQL Mutations?数据写入操作
  • 传统vsAI:ORA-01033处理效率对比实验
  • SQL Server 2008 R2中NVARCHAR(MAX)与NTEXT区别
  • 云网融合助力运营商数字化转型