当前位置: 首页 > 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.cnnetsun.cn/news/67684.html

相关文章:

  • Google Vids:由AI驱动的工作视频创作 | ProductHunt 今日热榜 - 12月15日
  • 情感智能对话系统AI Agent:LLM驱动的深度交互
  • HDFS在大数据分析中的数据访问与处理优化
  • 自动驾驶—CARLA仿真(8)tutorial demo
  • 从被动响应到主动赋能:家具行业客服机器人的革新路径
  • AI辅助可再生能源发电预测:从气象数据到电力市场
  • 细节定成败!鹧鸪云让储能配置精准落地
  • 基于Qwen3-8B构建智能对话系统:从ollama下载到部署
  • 模块化公链的2025:动态分片、AI审计与量子安全的成本革命
  • 从Transformer模型详解到Seed-Coder-8B-Base的应用落地
  • 8、Qt 编程中的文件、流与 XML 处理
  • 9、Qt应用程序中的用户帮助功能实现
  • 17、Qt开发中的第三方工具、容器、类型与宏的综合解析
  • AutoGPT镜像升级路径规划:平滑迁移最新版本
  • 雷池 WAF vs React 高危漏洞:1 毫秒检测延迟,护住全栈业务安全
  • csp信奥赛C++标准模板库STL(3):list的使用详解
  • csp信奥赛C++标准模板库STL(2):deque的使用详解
  • LobeChat部署在Docker中遇到的问题及解决办法总结
  • AutoGPT在城市交通流量预测中的建模实验
  • AutoGPT镜像部署最佳实践:提升效率的关键一步
  • 5分钟快速验证:你的项目是否存在Gradle JVM风险
  • 快速验证航班暂停天数设置方案的原型工具
  • 电商后台系统如何用xm-select实现商品多选分类
  • Adaptive RAG实战:让大模型回答问题更准确的智能检索增强生成
  • AutoGPT打造自动视频剪辑师:素材选择+字幕生成
  • 5倍效率!AI秒解MyBatis参数异常
  • 传统调试vsAI辅助:解决pickle错误效率对比
  • MoE架构
  • C#内存加载dll和EXE是不是差不多,主要是EXE有入口点
  • DSP28335模型设计自动化代码生成与外设驱动库实战指南