首页 > 编程语言 >C++ 数组声明和初始化

C++ 数组声明和初始化

时间:2024-09-21 13:37:47浏览次数:10  
标签:初始化 10 int 含有 初始值 C++ 数组

显式初始化数组元素

如果指明了维度,那么初始值的总数量不应该超出指定的大小。如果维度比提供的初始值数量大,则用提供的初始值初始化靠前的元素,剩下的元素被初始化成默认值(参见 3.3.1节,第 88 页):

const unsigned s=3;
int ial[sz]={0,1,2};         //含有3个元素的数组,元素值分别是0,1,2
int a2[]={0,1,2};            //维度是3的数组
int a3[5]={0,1,2};           //等价于a3[]={0,1,2,0,0}
string a4[3]={"hi", "bye"};    //等价于 a4[〕={"hi","bye",""}
int a5[2]={0,1,2};             //错误:初始值过多 

不允许拷贝和赋值

不能将数组的内容拷贝给其他数组作为其初始值,也不能用数组为其他数组赋值:

int a[]=(0,1,2};    //含有3个整数的数组
int a2[]= a;         //错误:不允许使用一个数组初始化另一个数组
a2 = a;              //错误:不能把一个数组直接赋值给另一个数组

理解复杂的数组声明

int *ptrs[10];            //ptrs是含有10个整型指针的数组
int &refs[10] = /* ?*/;   //错误:不存在引用的数组
int (*Parray)[10] = &arr;  // Parray指向一个含有10个整数的数组
int (&arrRef)[10] = arr;   // arrRef引用一个含有10个整数的数组
int *(&arry)[10]=ptrs;    //arry是数组的引用,该数组含有10 个指针

要想理解数组声明的含义,最好的办法是从数组的名字开始按照由内向外的顺序阅读。




《C++ Primer》 P103

标签:初始化,10,int,含有,初始值,C++,数组
From: https://www.cnblogs.com/huvjie/p/18423821

相关文章

  • C++ 知识要点:I/O 模型
    1.使用同步IO模型实现的Reactor模式的工作流程(以epoll_wait为例)在Reactor模式中,主线程(也称为事件循环或分发器)负责监听和分发事件,工作线程负责处理具体的业务逻辑。以下是使用epoll_wait实现Reactor模式的工作流程,详细描述了事件的处理过程:1.主线程往epoll......
  • c++第3课
    #include<bits/stdc++.h>usingnamespacestd;intmain(){ inta=0; a=a+10; a=a+1; cout<<a; return0;}这叫累加,注意,cout<<a;这里不要加括号,不然输出结果会这样子:a这是因为加括号只输出a,而不加括号则输出11。1.取出4123的十位想要取出4123的十位就要用到/和%,......
  • c++算法 枚举———百钱白鸡问题
    前言枚举,是一种最基本的算法思想,通过穷举枚举出所有的可能,再加以比较。枚举算法适用于问题规模较小、解空间可穷举的情况。它的优点是简单直观,不需要复杂的数学推导,易于实现。但是,对于问题规模较大的情况,枚举算法的时间复杂度可能会非常高,效率较低。接下来会介绍两个百钱白......
  • 【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
    文章目录C++类与对象前言读者须知RVO与NRVO的启用条件如何确认优化是否启用?1.按值传递与拷贝省略1.1按值传递的概念1.2示例代码1.3按值传递的性能影响1.3.1完全不优化1.4不同编译器下的优化表现1.4.1VisualStudio2019普通优化1.4.2VisualStudio2022激进......
  • 解决bootstraptable只能初始化数据一次的问题
    ajax+bootstraptable展示数据的时候,无法根据需求更改展示内容,报错:Youcannotinitializethetablemorethanonce!解决方案:加一行代码,先将bootstraptable销毁$("#tool1table").bootstrapTable('destroy');<script>$("#tool1btn").click(function(){......
  • JavaScript --- 3种数组去重的方法
     方法1<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="wi......
  • JavaScript --- 数组常用方法(3)
    foreach遍历<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content=&......
  • 【c++】动态内存管理
    ......
  • [leetcode刷题]面试经典150题之3删除有序数组中的重复项(简单)
    题目 删除有序数组中的重复项给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你......
  • 大学C++程序设计课程开发指南——开发环境搭建
    前言由于某些大学程序设计课程仍然在使用VC6.0这一上古工具,不太适合学生与现代开发生产接轨,并且也有可能出现兼容问题等,故编写此文,仅供参考。使用VisualStudio在介绍VisualStudio(此后简称VS)前,先给大家介绍这一工具的发展。其前身正是VC6.0(全称VisualC++6.0,二十世纪末和......