1 C++数组声明
C++中的数组是一种数据格式,可以存储多个同类型的值。
通常声明数组的通用格式如下:
typeName arrayName[arraySize]
其中typeName
为数据类型,arrayName
为数组名称,arraySize
为数组大小。
比如:
float persons[10]
表示一个数据类型为float,数组大小为10,数组名为persons的数组。
2 C++数组初始化规则
在C++中初始化数组需遵循一些规则。
1. 只有在定义数组时才能初始化数组,且不能将一个数组赋值给另一个数组
什么是只能在定义数组时才能初始化数组呢?比如
int persons[4]; // 默认
int persons[4] = {1,2,3,4}; // 初始化列表
如果换一种形式,
int persons[4];
persons = {1,2,3,4}
这种是不允许的。
同样的,将一个数组赋值给另一个数组这种方式也是不允许的,比如
int persons[4] = {1,2,3,4};
int persons_copy[4];
persons_copy = persons;
2 初始化数组时,提供的初始化的值可以少于或者等于数组的大小
比如
int persons[4] = {1,2};
这种情况下只会对persons数组前两个元素进行初始化,剩余元素默认初始化为0。
如果提供的初始化的值可以大于数组的大小,这种也是不允许的,比如
int persons[4] = { 1,2,3,4,5 };
3 C++数组初始化方法
3.1 逐一元素赋值
#include <iostream>
int main()
{
int persons[4];
persons[0] = 1;
persons[1] = 2;
persons[2] = 3;
persons[3] = 4;
return 0;
}
这种方法也是最笨的方法。
3.2 初始化列表
#include <iostream>
int main()
{
int persons[4] = {1,2,3,4};
return 0;
}
当然在C++中我们也可以省略=
号,比如
#include <iostream>
int main()
{
int persons[4] {1,2,3,4};
return 0;
}
我们可以不在{}
中填入值,这时候数组的值初始化为0,比如
#include <iostream>
int main()
{
int persons[4] {};
return 0;
}
我们也可以不显式指定数组大小,由初始化列表的值的个数进行推断,比如
#include <iostream>
int main()
{
int persons[] = {1,2,3,4};
return 0;
}
3.3 使用memset初始化数组为同一值
比如将数组全部初始化为0
#include <iostream>
int main()
{
int persons[4];
memset(persons, 0, 4);
return 0;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 数组初始化
原文链接:https://www.stubbornhuang.com/2387/
发布于:2022年10月14日 16:02:45
修改于:2023年06月21日 17:58:00
当前分类随机文章推荐
- C++ - Web服务器框架Crow开发环境配置教程 阅读257次,点赞0次
- C++11 - 使用std::codecvt进行字符编码转换需要注意的时间效率问题 阅读2564次,点赞2次
- C++ - 获取std::vector中的最小值、最大值以及对应的索引 阅读496次,点赞0次
- CMake - 设置Debug或者Release编译模式 阅读4052次,点赞0次
- C++ - 阿拉伯数字字符串转换为中文读法的中文字符串,支持小数点 阅读1619次,点赞0次
- C++ 11 - final关键字简要介绍 阅读2263次,点赞0次
- C++ - Jni中的GetByteArrayElements和GetByteArrayRegion的区别和使用示例 阅读4622次,点赞0次
- C++ - std::string与std::wstring相互转换 阅读2470次,点赞0次
- C++ - 主线程如何捕获子线程抛出的异常 阅读443次,点赞0次
- C++ - 智能指针的正确使用方式 阅读827次,点赞0次
全站随机文章推荐
- 资源分享 - Geometric Data Structures for Computer Graphics 英文高清PDF下载 阅读2384次,点赞0次
- 资源分享 – Fluid Simulation for Computer Graphics, Second Edition英文高清PDF下载 阅读4529次,点赞0次
- 资源分享 - GPU Gems 2 - Programming Techniques for High-Performance Graphics and General-Purpose Computation 英文高清PDF下载 阅读3627次,点赞0次
- Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线 阅读2887次,点赞0次
- 资源分享 - The Magic of Computer Graphics - Landmarks in Rendering 英文高清PDF下载 阅读2494次,点赞0次
- Pytorch - 手动调整学习率以及使用torch.optim.lr_scheduler调整学习率 阅读908次,点赞0次
- Pytorch – 使用torch.matmul()替换torch.einsum(‘nkctv,kvw->nctw’,(a,b))算子模式 阅读1390次,点赞0次
- Modern OpenGL - GLSL着色语言3:GLSL中的数据类型 阅读2201次,点赞0次
- Python - BeautifulSoup的find()和findAll() 阅读3089次,点赞0次
- Pytorch - transpose和permute函数的区别和用法 阅读1795次,点赞0次
评论
169