数组的创建-数组-C
数组内存是连续的
数组是一个整体,它的内存是连续的;也就是说,数组元素之间是相互挨着的,彼此之间没有一点点缝隙。下图演示了int a[4];在内存中的存储情形:

「数组内存是连续的」这一点很重要,所以我使用了一个大标题来强调。连续的内存为指针操作(通过指针来访问数组元素)和内存处理(整块内存的复制、写入等)提供了便利,这使得数组可以作为缓存(临时存储数据的一块内存)使用。大家暂时可能不理解这句话是什么意思,等后边学了指针和内存自然就明白了。
数组的初始化
上面的代码是先定义数组再给数组赋值,我们也可以在定义数组的同时赋值,例如:
int a[4] = {20, 345, 700, 22};
数组元素的值由{ }包围,各个值之间以,分隔。
对于数组的初始化需要注意以下几点:
1) 可以只给部分元素赋值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:
int a[10]={12, 19, 22 , 993, 344};
表示只给 a[0]~a[4] 5个元素赋值,而后面 5 个元素自动初始化为 0。
当赋值的元素少于数组总体元素的时候,剩余的元素自动初始化为 0:
- 对于short、int、long,就是整数 0;
- 对于char,就是字符 '\0';
- 对于float、double,就是小数 0.0。
2) 只能给元素逐个赋值,不能给数组整体赋值。
例如给 10 个元素全部赋值为 1,只能写作:
int a[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
3) 如给全部元素赋值,那么在定义数组时可以不给出数组长度。例如:
int a[] = {1, 2, 3, 4, 5};
// 等价于
int a[5] = {1, 2, 3, 4, 5};
数组的创建-数组-C的更多相关文章
- Java知识系统回顾整理01基础06数组01创建数组
一.数组定义 定义:数组是一个固定长度的,包含了相同类型数据的 容器 二.声明数组 int[] a; 声明了一个数组变量. []表示该变量是一个数组 int 表示数组里的每一个元素都是一个整数 a 是 ...
- Java学习小结(1)-数组的创建与传参
(一)数组的创建 数组的创建包括两部分:数组的申明与分配内存空间. int score[]=null; //申明一维数组 score=new int[3]; //分配长度为3的空间 数组的申明还有另外 ...
- numpy学习之创建数组
1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...
- numpy数组的创建
创建数组 创建ndarray 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. array函数创建数组 import ...
- Java中数组的创建
Java中数组的使用 1.普通数组变量的定义: //数组 //1.数组是Java中很重要的一部分,今天对数组进行了大致的了解,Java中的数组和C中数组还是有一定的区别的 //以下是总结的几种方法 p ...
- javascript之数组对象与数组常用方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C语言柔性数组和动态数组
[前言]经常看到C语言里的两个数组,总结一下. 一.柔性数组 参考:https://www.cnblogs.com/veis/p/7073076.html #include<stdio.h> ...
- android 创建数组
一: private String[] data = new String[]{"Hello", "jike", "world"}; 二: ...
- 反射——反射API,使用反射创建数组
反射API Java.lang.Reflect库 ① Class类与Java.lang.Reflect类库一起对反射的概念进行支持. ② java.lang包下: a) Cla ...
- Numpy 学习之路(1)——数组的创建
数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...
随机推荐
- aardio桌面软件开发 简单,打包后文件小,支持 .net python 和 众多插件
aardio 编程语言 - 官网 aardio 专注于桌面软件开发,17年一直保持非常活跃地更新( 更新日志 ),aardio 被多年用于生产项目实践,久经测试和锤炼.aardio 在诞生之初就设计 ...
- Visual Studio 智能代码插件:CodeGeeX
前言 在软件开发领域,高效的编程助手一直是提升开发者效率和质量的关键.随着人工智能技术的不断发展,智能编程助手逐渐成为开发者们不可或缺的工具.其中,CodeGeeX作为一款专为Visual Studi ...
- kubernetes ingress部署
ingress概念 ingress与service,deployment同样都是k8s中的一种资源 ingress用于实现域名方式访问k8s内部应用 安装ingress 1. 安装helm: wget ...
- itest(爱测试) 开源接口测试,敏捷测试管理平台10.0.0GA 发布
一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...
- 一文了解JVM(中)
HotSpot 虚拟机对象探秘 对象的创建 Header 解释 使用 new 关键字 调用了构造函数 使用 Class 的 newInstance 方法 调用了构造函数 使用 Constructor ...
- 获取URL中查询参数 URL中动态参数
通过 req.query 对象,可以访问到客户端通过查询字符串的形式发送到服务器的参数 app.get('/',(req,res)=>{ console.log(req.query) }) .U ...
- 2024-06-08:用go语言,给定三个正整数 n、x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋。 在这座城市中,房屋通过街道相连。对于每个编号i(1 <= i < n), 存在一条
2024-06-08:用go语言,给定三个正整数 n.x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋. 在这座城市中,房屋通过街道相连.对于每个编号i(1 <= i < n) ...
- windows 批处理 检查并启动 windows 服务
windows 批处理 检查并启动 windows 服务 set srvname="YSWindowsService" sc query|find %srvname% && ...
- 妙用OSGraph:发掘GitHub知识图谱上的开源故事
1. 何为OSGraph? OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于GitHub开源数据全域图谱,实现开发者行为.项目社区生态的分析洞察.可以为开发者. ...
- PowerBI_一分钟了解POWERBI计算组功能及作用(第一部分)
1: X-mind&计算组(CALCULATION GROUP)介绍 1.1 什么是计算组 PowerBI的计算组功能可以显著减少必须创建的冗余度量值数,通过允许将DAX表达式定义为应用于模型 ...