当前位置: 首页 > 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.jsqmd.com/news/94196/

相关文章:

  • Python 从入门到实战(七):函数(代码复用的 “万能封装器”)
  • LobeChat国际化支持现状:多语言界面切换是否顺畅?
  • LobeChat与FastAPI后端整合方案:构建完整AI服务链路
  • 6、深入探索自定义 Widget 的创建与应用
  • 24小时从0到1:React+Web3.js极速开发DApp MVP的完整避坑指南
  • Java容器化应用配置
  • 企业为什么更适合“小Agent + 明确边界”,而不是通用Agent?
  • java计算机毕业设计生物样本采集系统 基于SpringBoot的临床生物标本信息管理系统的设计与实现 面向医院检验科的生物样本库在线管理平台的设计与实现
  • 基于Qwen3-8B构建智能对话系统:从ollama下载到部署
  • 程序员的数学(十一)算法优化中的数学思维:从暴力到高效的蜕变
  • 论文阅读:ACL fingding 2025 A Mousetrap: Fooling Large Reasoning Models for Jailbreak with Chain of Itera
  • 模块化公链的2025:动态分片、AI审计与量子安全的成本革命
  • 半导体设备工厂自动化软件技术方案
  • 互联网大厂Java面试实录:谢飞机的AIGC求职之旅 - JVM并发编程到Spring Cloud微服务
  • diskinfo下载官网数据对比:评估Qwen3-8B磁盘IO性能优化策略
  • 清华源anaconda镜像配置加快Qwen3-32B环境搭建
  • 构建可靠的AIGC创作系统:从单点实验到可重复生产
  • 4、主窗口开发:SDI 与 MDI 应用详解
  • LobeChat部署在Docker中遇到的问题及解决办法总结
  • 丰田威驰 8A-FE 电控双燃料发动机实训台
  • 5、Qt模型视图框架:从基础到高级应用
  • 清华源镜像站加速Qwen3-32B模型下载速度实测
  • 基于Java springboot高校班主任量化打分系统(源码+运行视频+讲解视频)
  • 研究生如何利用AI在大量文献中筛选有价值信息?
  • AutoGPT + Token服务 构建可持续运行的AI智能体
  • 解决 Habitat 模拟器启动失败:EGL 与 CUDA 设备不匹配问题(unable to find CUDA device 0 among 3 EGL devices in total)
  • 【RT-DETR涨点改进】全网首发、Conv卷积改进篇 | AAAI 2026 | RT-DETR利用PATConv部分注意力卷积,含PATConvC3二次创新,轻量化改进,含8种改进助力有效涨点
  • 【AI平台MLOps工程师招聘】年薪600-1100万日元
  • LobeChat如何与Nginx反向代理配合使用?线上部署必备技能
  • LobeChat是否支持DNS Prefetch?域名解析加速优化