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

初阶 《数组》 1. 一维数组的创建和初始化

1. 一维数组的创建和初始化

1.1 数组的创建

数组是一组相同类型元素的集合

数组的创建方式:

type_t   arr_name   [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小

数组创建的实例:

//代码1
int arr1[10];
char arr3[10];
float arr4[1];
double arr5[20];
//代码2
//下面的代码只能在支持C99标准的编译器上编译
int n = 10;
scanf("%d", &n);
int arr2[n];//这种数组是不能初始化的

:数组创建,在C99标准之前,[ ]中要给一个常量才可以,不能使用变量。在C99标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化

1.2 数组的初始化

数组的初始化是指在创建数组的同时给数组的内容一些合理初始值(初始化)

不完全初始化,剩余的元素默认初始化为0

	int arr1[5] = { 1,2,3 };int arr2[] = { 1,2,3 };int arr3[3] = { 1,2,3 };

在这里插入图片描述

	char ch1[5] = { 'a','b','c' };char ch2[] = { 'a',98, 'c' };char ch3[3] = { 'a','b','c' };

在这里插入图片描述

	char ch4[5] = "abc";char ch5[] = "abc";char ch6[3] = "abc";

在这里插入图片描述
数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。但是,对于下面的代码要区分内存中如何分配。

	char ch7[] = "abc";char ch8[3] = { 'a','b','c' };

在这里插入图片描述

1.3 一维数组的使用

对于数组的使用我们之前介绍了一个操作符:[ ](下标引用操作符)。它其实就是数组访问的操作符

#include <stdio.h>
int main()
{int arr[10] = { 0 };//数组的不完全初始化//计算数组的元素个数int sz = sizeof(arr) / sizeof(arr[0]);//对数组内容赋值,数组是使用下标来访问的,下标从0开始。所以:int i = 0;//做下标for (i = 0; i < 10; i++)//这里写10,好不好?{arr[i] = i;}//输出数组的内容for (i = 0; i < 10; ++i){printf("%d ", arr[i]);}return 0;
}

总结

  1. 数组是使用下标来访问的,下标是从0开始。
  2. 数组的大小可以通过计算得到。

1.4 一维数组在内存中的存储

#include <stdio.h>
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int i = 0;int sz = sizeof(arr) / sizeof(arr[0]);for (i = 0; i < sz; i++){printf("&arr[%d]=%p\n", i, &arr[i]);}return 0;
}

在这里插入图片描述
仔细观察输出的结果,我们知道,随着数组下标的增长,元素的地址,也在有规律的递增。
由此可以得出结论:数组在内存中是连续存放的

在这里插入图片描述

相关文章:

  • Github 2024-06-19 开源项目日报 Top10
  • 什么是RPA
  • 【王树森】深度强化学习(DRL)学习笔记
  • 系统安全(补充)
  • 【Linux】CentOS 7 安装配置 postfix 邮件服务器随笔
  • 57.Linux/Unix 系统编程手册(下) -- SOCKET : Unix domain
  • C++ Windows Hook使用
  • 人机交互的AB面
  • 网络校时服务器:铁路对时有妙招
  • 基于Pytorch框架的深度学习Swin-Transformer神经网络食物分类系统源码
  • 微信小程序录音和头像上传
  • 学懂C#编程:常用高级技术【元组的详细使用(二)】——元组的概念及使用
  • 昇思25天学习打卡营第1天|基本介绍及快速入门
  • vivo手机录屏教程,这些方法你get到了吗?
  • Selenium屏幕截图技巧:实现自动化截屏并按日期时间格式保存图片
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • css选择器
  • extract-text-webpack-plugin用法
  • laravel5.5 视图共享数据
  • Making An Indicator With Pure CSS
  • ng6--错误信息小结(持续更新)
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Promise面试题,控制异步流程
  • React 快速上手 - 07 前端路由 react-router
  • Sass Day-01
  • Spring框架之我见(三)——IOC、AOP
  • 深入 Nginx 之配置篇
  • 什么软件可以剪辑音乐?
  • 一天一个设计模式之JS实现——适配器模式
  • 阿里云ACE认证之理解CDN技术
  • ​水经微图Web1.5.0版即将上线
  • # 安徽锐锋科技IDMS系统简介
  • #android不同版本废弃api,新api。
  • #if 1...#endif
  • (10)STL算法之搜索(二) 二分查找
  • (12)目标检测_SSD基于pytorch搭建代码
  • (JS基础)String 类型
  • (poj1.3.2)1791(构造法模拟)
  • (八十八)VFL语言初步 - 实现布局
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)c52学习之旅-简单了解单片机
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (离散数学)逻辑连接词
  • (论文阅读40-45)图像描述1
  • (十八)Flink CEP 详解
  • (转)linux 命令大全
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)