数组的初始化 array initializer is not allowed here

C++ 不能用初始值设定项列表初始化非聚合错误 C++ 不能用初始值设定项列表初始化非聚合 错误; 阅读详情

 此处不允许使用数组初始值设定项 array initializer is not allowed here

数组的使用分声明和初始化两部分,两者可同时进行,也可分开进行

int[] array;   声明

array = new int{element1,element2,element3..};  初始化方式1

array = new int[length];   初始化方式2

数组的初始化方式分为两种:

一.静态初始化:初始化时由程序员显式指定每个数组元素的初始值;

    arrayName = new type[]{element1,element2,element3...}

二.动态初始化:初始化时由程序员指定数组的长度,由系统初始化每个数组元素的默认值。

    arrayName = new type[length];

注意:不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分

配初始值。
 

今天看代码看到了一种简化的数组的数组初始化方式,属于静态初始化的简化版,但是使用的时候出了点问题

int[] array = {1,2,3}; Object[] obj = {};这样是没问题的

于是我试了一下这样写

类的成员变量里声明了一个数组 int[] elementData,但未进行初始化;

在构造方法里对其初始化,试图这样写

elementData = {1,3,5} ,于是便出现了上述编译错误提示

看来这种简化的写法在这里并不适用,

数组的使用必须是经过初始化的

猜想elementData = {1,3,5}这种方式没有经过new产生新对象,可能编译器认为其已声明但未初始化便被使用了吧

所以还是建议,在数组声明时即初始化完毕:

int[] elementData =  {1,3,5}; 这样是没问题的,声明和赋值同时进行

IEEE GRSL投稿全流程避坑指南:从Latex模板到校样缴费,新手必看的7个关键节点 本文详细解析了IEEE GRSL投稿全流程中的7个关键节点,从LaTeX模板选择到校样缴费,帮助新手避免常见陷阱。特别针对图像格式转换、审稿意见回复、版权转移等环节提供实用技巧,确保投稿过程高效顺利。 阅读详情

相关推荐

用Python+OpenCV给斗地主做个‘外挂’:手把手教你写个桌面记牌器(附源码)

本文详细介绍了如何使用Python和OpenCV开发一个智能斗地主记牌器,包括环境搭建、图像采集与预处理、扑克牌识别技术及PyQt5界面设计。通过实战案例,帮助开发者掌握图像处理与界面开发的结合应用,提升游戏辅助工具的编写能力。

weixin_29079643的博客 547

数组初始化的4种方式

1. 直接给每个元素赋值 int array[4] = {1,2,3,4}; 2. 给一部分赋值,后面的全部为0 int array[4] = {1,2}; 3. 由赋值参数个数决定数组的个数 int array[] = {1,2}; 4. 数组元素的值是随机分配的 int array[4] = {}; 当初始化参数时,推荐使用 int array[4] = {0}; void Print(i...

giantmfc123 8万+

Computer Networks 和 Computer & Security投稿经验

论文投稿

qq_50604294的博客 9234

数组的四种初始化方式

第一种: 对数组的每一个成员都进行初始化 demo1: int age[8] = {23,23,21,45,3,23,34,12}; age[0] = {23}; age[1] = {23}; age[2] = {21}; age[3] = {45}; age[4] = {3}; age[5] = {23}; age[6] = {34}; age[7] = {12}; 第二种: 初始化一部分,但其它元素默认为零 demo2: int weights[24] = {65,54,34,34};//数组成员0-

weixin_46060711的博客 1万+

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2827

【面试题】MySQL索引相关的面试题(红黑树,hash,B树,B+树)

自己整理了几个面试题分享给大家 问题1:红黑树为什么那样设计? 首先聊一下二叉搜索树,主要特点是左节点比根节点小,右节点比根节点大,并且左右子树都是二叉搜索树。缺点是在极端情况下,比如插入都是有序的,就会出现退化的情况有序序列树退化成链表。 二叉搜索树 退化成链表的二叉搜索树 此时,要想让树的节点平均分布就需要平衡树了,红黑树就是平衡树的一种(平衡二叉搜索树)。然后,一棵树的查询性能取决...

Mr_黑_ 的博客 4044

C语言常见问题——数组初始化的四种方法

有一回,小易同学对我说:“你学过编程吗”,我略略点一点头。他说,“学过编程,我便考一考你,在使用数组之前,应不应该初始化数组?”我暗想,这么简单的问题,也配考我么?不只是数组,在使用任何变量之前,都应该对变量进行初始化,这是一个编程的好习惯,可以有效避免许多由于垃圾值导致的bug。于是我回过脸去,不再理会。小易同学等了许久也不见我回答,很诚恳的说道,“不知道罢?我教给你,记着!......数组的初始化有4种写法——” 初始化列表、memset函数、指定初始化器、for循环

易水卷长空的博客 16万+

Java 处理地理信息数据[DEM TIF文件数据获取高程]

EPSG 是一个国际标准,用于唯一标识地理坐标系和投影坐标系。

两点 1281

Java之路(四)数组初始化

本文主要讲数组的初始化方法、可变参数列表以及可变参数列表对函数重载的影响。 数组初始化 定义数组的方式:   int[] arr1; 或  int arr1[]; 数组初始化   通过上边的定义,我们只是得到了一个数组的引用。这时已经为引用分配了存储空间,但是还没有给数组对象本身分配任何空间。想要给数组对象分配存储空间,必须使用初始化表达式。 a.在数组创建的地方进行初始化,如:

oggyyq42448的博客 854

【CASS精品教程】013:CASS9.1生成标准图幅案例教程

在CASS中,可以很方便的生成标准图幅,如50*50。本文演示cass中,根据测区范围标准图幅生成过程。

智慧空间实验室 1万+

Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程

本文主要介绍了Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程,希望能对使用Codex的同学们有所帮助。 文章目录 1. 背景 2. 实战教程

weixin_43178406的博客 6万+

C++11 列表初始化、initializer_list、auto、decltype、array

C++11 列表初始化、initializer_list、auto、decltype、array

一怀明月的博客 1296

BAT031:按列表名单将路径a下的文件夹批量剪切到路径b

摘要:按列表名单将路径a下的文件夹批量剪切到路径b。

qq_31762031的博客 1220

nlohmann-json basic_json::array 详解:从初始化列表显式构造 JSON 数组

在 JSON for Modern C++(nlohmann/json)中,`json::array(...)` 是一个静态工厂函数,用于从 C++ 初始化列表显式创建一个 JSON 数组值(`nlohmann::basic_json::array`)。它存在的意义,是解决初始化列表构造函数 `basic_json(initializer_list_t)` 无法表达的两种边界情况:**创建空数组*

gitblog_00452的博客 1051

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

通过C++ array类简单了解C++容器初始化机制

最近为了让自己深入了解C++,于是开始动手实现C++的一些简单的常用组件,在基本完成了最简单的链表、栈、队列等数据结构之后,我又挑了一个最简单的,开始实现C++的静态数组array类 参考文档:​​​​​​<array> 函数 | Microsoft Docs array C++的array是一个定长静态数组,声明如下。接收两个模板参数:元素类型,一个是数组长度。把数组长度也作为模板参数之一,数组长度不能修改,如果要改变数组长度,那还是使用vector或者deque吧 template

Harris_ayaka的博客 2685

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【C++】列表初始化、声明、范围for、array容器

C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号(=),也可不添加

m0_72532428的博客 1071

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JSON for Modern C++ 类型检查系列:深入解析 basic_json::is_array() 判定数组类型

本文围绕 JSON for Modern C++(nlohmann/json 仓库)中 `nlohmann::basic_json::is_array()` 成员函数展开,从函数签名、返回语义、底层实现到典型实战场景,逐层剖析「如何判断一个 JSON 值是否为数组」。读完本文,你将理解数组类型在 `basic_json` 内部的表示方式、`is_array()` 与兄弟类型检查函数(`is_obj

gitblog_00613的博客 803

c语言 long定义数组初始化,字符数组的初始化字符串是太长的错误(initializer-string for array of chars is too long error)...

字符数组的初始化字符串是太长的错误(initializer-string for array of chars is too long error)我正在使用C ++进行BlackJack游戏,并且在其中出现错误时,我有以下一段代码typedef struct{int value;char suit[8];char name[8];}Deck;Deck Cards[52] = {{ 1,"Ace"...

weixin_39947501的博客 2468

C/C++数组初始化的一些误区

以前我这样初始化一个数组,并自我感觉良好:int a[5] = { 0 }; // 全部初始化为0这种简单的写法让我非常爽,于是我又想把数组全部初始化为1:int a[5] = { 1 }; // 我想全部初始化为1直到十分钟前,我都以为这句代码确实能够将5个元素全部初始化为1,但事实跟我想的完全不同!(基础的东西革命的本钱,疏漏不得啊) 全部初始化为0的那行代码确实是没问题的,可以

Coding,你上你也行! 9万+

c错误(1)——[Error] initializer-string for array of chars is too long [-fpermissive]

[Error] initializer-string for array of chars is too long [-fpermissive]

weixin_45792414的博客 2448

数组高阶应用(C++版)

这篇文章讲解的是c语言数组、array、initialize_list、vector四者的差别,包括vector的具体用法,扩展了迭代器失效的问题。

m0_73969414的博客 1017

Cannot define dimension expressions when an array initializer is provided

Java中使用数组,碰到如上问题,查询才知道,java语法不支持,因为初始化包括两种 1)动态初始化 int[] array = new int[3];这样数组3个元素均为0;2)静态初始化int[] array = new int[]{4, 2, 1}; 不允许同时使用上述 int[] array = new int[3]{4, 2, 1};

面对未来,乘风破浪 5467

【C++11】:统一的列表初始化|声明|STL变化

对于c++11新特性的总结( ´◔︎ ‸◔︎`)

B1ue还在专注 1968

C++ 11 [ 列表初始化 ]

自定义类也可以定义接受。

Small_entreprene的博客 1432

linux 初始化数组,c – 使用initializer_list初始化数组?

参见英文答案 >How do I initialize a member array with an initializer_list?5个这是否可能?#include #include struct A{A ( std::initializer_list< int > l ): m_a ( l ){}std::array m_a;};int main(){A a{ 1,2 };...

weixin_29057237的博客 249

Cannot define dimension expressions when an array initializer is provided 错误

int arr[] = new int[4] {1,2,3,4};报错,错误为:Cannot define dimension expressions when an array initializer is provided 经查询资料得知Java语法不支持这样的初始化。Java中的初始化分为两种: 1.动态初始化 int a[];//a 还没有new操作 实际上是null,也不知道内存位置 i...

Bald_Creator的博客 1417
上一篇: 序列化--Serializable接口与transient修饰符
下一篇: 原码,补码,反码
MrMoving
博客等级 码龄10年 54粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值