news 2026/4/18 8:14:26

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白学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;
}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:38:52

CHO细胞助力病毒研究:牛疱疹病毒gD蛋白的真核表达全解析

在生物医药研究中&#xff0c;CHO细胞表达系统已成为获取高质量重组蛋白的关键技术&#xff0c;尤其在病毒抗原制备领域展现出独特价值。本文利用CHO-S真核蛋白表达系统成功表达并纯化牛疱疹病毒1型&#xff08;BHV-1&#xff09;gD蛋白&#xff0c;系统介绍真核表达流程、蛋白…

作者头像 李华
网站建设 2026/4/18 5:32:59

Geo优化【双核四驱】驱动企业增长:权威专家于磊深度解析

Geo优化&#xff08;Generative Engine Optimization, GEO&#xff09;已成为AI时代企业数字营销的战略高地。随着大语言模型驱动的生成式搜索逐渐取代传统的链接聚合模式&#xff0c;企业与用户之间的信息触达逻辑正在发生根本性变革。中国信通院在2024年第四季度的报告中指出…

作者头像 李华
网站建设 2026/4/18 10:08:09

MyBatis框架详解与第一个入门程序

MyBatis框架详解与第一个入门程序什么是MyBatis&#xff1f;MyBatis 是一个持久化框架&#xff0c;它使得数据库操作变得简单和灵活。与Hibernate这样的全自动 ORM 框架不同&#xff0c;MyBatis 通过 XML 或注解配置 SQL 语句&#xff0c;开发者可以完全控制 SQL 语句的编写。因…

作者头像 李华
网站建设 2026/4/18 5:34:32

【Matlab】margin中断

目录 错误分析 错误链解读 各模块功能 中断原因分析 可能的原因 特别关注点 解决方案 方案1&#xff1a;增加超时机制&#xff08;推荐&#xff09; 方案2&#xff1a;简化margin计算 方案3&#xff1a;预处理避免奇异情况 方案4&#xff1a;优化GWO参数设置 快速调…

作者头像 李华
网站建设 2026/4/18 8:03:14

LobeChat国际化支持现状:多语言界面切换是否顺畅?

LobeChat 国际化支持现状&#xff1a;多语言界面切换是否顺畅&#xff1f; 在 AI 聊天应用日益普及的今天&#xff0c;一个看似不起眼的功能——界面语言切换——正悄然成为决定产品能否走向全球的关键。用户不会为了使用一款工具而学习一门新语言&#xff0c;尤其是当他们只是…

作者头像 李华