精华内容
下载资源
问答
  • 对数组初始化不正确
    千次阅读
    2017-09-18 17:50:38
    //一般对数组初始化可以用以下方法实现:
    #include<iostream>
    using namespace std;
    int main(){
    //一般对数组初始化可以用以下方法实现:
    //(1)在定义数组时对数组元素赋以初值。如:
    int a[8] = {0,1,2,3,4,5,6,7};
    cout<<"a[0]="<<a[0]<<endl;
    //经过上面的定义和初始化后,a[0]=0,a[1]=1,...,a[7]=7
    
    //(2)初始化时可以只对一部分元素赋初值。
    int b[8] = {0,1,2,3,4};
    //定义的数组有8个元素,但只对其中前5个元素赋了初值,后3个元素初值为0。
    cout<<"b[0]="<<b[0]<<endl;
    cout<<"b[1]="<<b[1]<<endl;
    cout<<"b[2]="<<b[2]<<endl;
    cout<<"b[3]="<<b[3]<<endl;
    cout<<"b[4]="<<b[4]<<endl;
    cout<<"b[5]="<<b[5]<<endl;
    cout<<"b[6]="<<b[6]<<endl;
    cout<<"b[7]="<<b[7]<<endl;
    cout<<"b[8]="<<b[8]<<endl;
    
    cout<<"========================="<<endl;
    
    //(3)如果想使一个数组的元素值全部为0,可以用下面的方法
    int c[8] = {0,0,0,0,0,0,0,0};
    //不能用 int c[8] = {0*8};
    
    //(4)在对全部数组元素赋初值时,可以不指定数组长度
    
    // 如果对static 型数组不赋初值,系统会对定义的所有数组元素自动赋以0值
    static int d[5];
    cout<<"d[0]="<<d[0]<<endl;
    cout<<"d[1]="<<d[1]<<endl;
    cout<<"d[2]="<<d[2]<<endl;
    }
    

    更多相关内容
  • 如何对数组进行初始化

    千次阅读 2013-04-19 10:49:46
    嵌套的花括号进行初始化多维数组: 如1 short cantaloupe[2][5]={ {10,12,3,4,一5}, {31,22,6,0,-5}, }; 如2 intrhubarb[][3]={{0,0,0},{1,1,1},}; 建立指针数组进行初始化...

    嵌套的花括号进行初始化多维数组:

    如1

    short cantaloupe[2][5]={
    {10,12,3,4,一5},
    {31,22,6,0,-5},
    };


    如2

    intrhubarb[][3]={{0,0,0},{1,1,1},};


    建立指针数组进行初始化多维数组:

    如:
    char vegetables[ ][9] ={“carrot”,
    			“celery”,
    			“corn”,
    			“cilantro”,
    			“crispy fried patatoes”}



    char *vegetables[]={“carrot”,
    				“celery”,
    				“corn”,
    				“cilantro”,
    				“crispy fried patatoes”}


    建立数组进行初始化多维数组:

    introw_1[]={1,2,3,4,5,-1}; /*一1是行结束标志*/
    introw_2[]={6,7,-1};
    introw_3[]={8,9,10,-1};
    int*weight[]={
    row_1,
    row_2,
    row_3
    };

    展开全文
  • java数组如何初始化

    2021-04-22 15:26:13
    所谓初始化就是为数的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:● 基本数据类型的整数类型(byte、short、int、long)默认值是...

    b0e14d336a54

    Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。

    注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:

    ● 基本数据类型的整数类型(byte、short、int、long)默认值是0;

    ● 基本数据类型的浮点类型(float、double)默认值是0.0;

    ● 基本数据类型的字符类型(char)默认值是'\u0000';

    ● 基本数据类型的布尔类型(boolean)默认值是false;

    ● 类型的引用类型(类、数组、接口、String)默认值是null.

    java数组如何初始化?初始化方式介绍

    1、静态初始化:初始化时由程序员显式指定每个数组元素的初始值,有系统决定数组的长度;arrayName = new type[]{element1,element2,element3...}

    示例:int[] intArr;

    intArr = newint[]{1,2,3,4,5,9};

    简化的静态初始化方式:type[] arrayName = {element1,element2,element3...};

    示例:String[] strArr = {"张三","李四","王二麻"};

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

    arrayName = new type[length];

    示例:int[] price = newint[4];

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

    一旦数组完成初始化,数组在内存中所占的空间将被固定下来,所以数组的长度将不可改变。

    展开全文
  • 2)您只能为几个元素分配值,这称为“完全初始化”. 例如: int a[5] = {1, 2}; 已定义的数组a有5个元素,但在花括号中仅提供了两个初始值,这意味着仅初始化了前两个元素a [0]和a [1],而后三个元素是没有初始化....

    b2df1cff4ebbabdbb549a571c67029ba.png

    可以说,数组是迄今为止存储数据的第一个实际结构. 尽管较早学习的变量也可以存储数据,但是变量可以存储的数据非常有限. 不仅如此,数组和指针(将在后面讨论)是互补的,学习数组可以为学习指针奠定基础.

    那么数组到底是什么?顾名思义,数组是许多数字的组合!那么对这些数字有什么要求,不管什么数字组合在一起,它都是一个数组吗?存储在同一数组中的数字必须满足以下两个条件: 这些数字的类型必须相同. 这些数字必须连续存储在内存中.

    换句话说,数组是连续存储在内存中的相同类型数据的集合.

    一维数组一维数组的定义如下:

    类型说明符数组名称[常量表达式];

    示例:

    int a[5];

    这意味着定义了一个整数数组,数组名称为a,定义的数组称为数组a. 数组名a不仅表示数组,而且还表示数组的第一个地址(该地址暂时不讨论,稍后将讨论指针).

    这时,数组a中有5个元素,每个元素都是一个int变量,并且它们在内存中的地址是连续分配的. 也就是说,int变量占据4个字节的内存空间,然后5个int变量占据20字节的内存空间,并且它们的地址被连续分配.

    这里的元素是变量的含义,而数组中的元素在传统上称为元素.

    定义数组时,需要指定数组中元素的数量. 方括号中的常量表达式用于指定元素的数量. 数组中的元素数也称为数组的长度.

    i-nv40TkpB6i2T5TU8frD81X7YrSQQ.jpg

    由于数组中有多个元素,如何区分这些元素?该方法是通过对每个元素编号. 数组元素的数量也称为下标.

    数组中的下标从0(而不是1)开始. 那么,如何用下标表示每个数组元素呢?通过“数组名[下标]”方法. 例如,“ int a [5];”表示定义了一个包含5个元素的数组a,这5个元素是[0],[1],[2],[3],[4]. 其中,[0],[1],[2],[3]和[4]分别代表这五个元素的变量名.

    为什么下标从0开始而不是1?想象一下,如果从1开始,数组的第五个元素是[5],并且当数组定义为int a [5]时,两者都是[5],这很容易引起混淆. 下标从0开始时不存在此问题!因此,定义一个数组a [n],则该数组中元素的最大索引为n–1;元素a [i]表示数组a中的第i + 1个元素.

    此外,方括号中的常量表达式可以是“数字常量表达式”或“符号常量表达式”. 但是无论表达式是什么,它都必须是常量,并且绝对不是变量. 通常,C语言不允许动态定义数组的长度. 换句话说,在程序运行期间,数组的大小不取决于变量的值. 异常情况是动态内存分配. 在这种情况下,可以动态定义数组的长度,这将在后面描述.

    一维数组初始化可以使用以下方法实现一维数组初始化:

    1)定义数组时,为所有元素分配初始值. 这称为“完全初始化”. 例如:

    int a[5] = {1, 2, 3, 4, 5};

    通过将数组元素的初始值放在一对大括号中,这样的初始化之后,[0] = 1; a [1] = 2; a [2] = 3; a [3] = 4; [4] = 5,它从左到右依次分配给每个元素. 应该注意的是,在初始化期间,元素之间用逗号而不是分号分隔.

    2)您只能为几个元素分配值,这称为“不完全初始化”. 例如:

    int a[5] = {1, 2};

    已定义的数组a有5个元素,但在花括号中仅提供了两个初始值,这意味着仅初始化了前两个元素a [0]和a [1],而后三个元素是没有初始化. 如果未完全初始化,则未初始化的元素会自动设置为0.

    c46abb3238c09a4d1d77c1742fe11114.jpg

    应注意,“未完成初始化”与“未完成初始化”不同. 如果“根本没有初始化”,即仅“ int a [5];”. 未初始化,则每个元素的值都不为0,并且所有元素均为垃圾值.

    您也不能写“ int a [5] = {};”. 如果大括号中没有写任何内容,则这是一个非常严重的语法错误. 用大括号写至少一个数字. 例如,“ int a [5] = {0};”一维数组的初始化方法,这一次是为了使数组“零”,这时数组中的每个元素都是零. 此外,如果定义的数组的长度小于大括号中提供的初始值的数量,则它也是语法错误,例如“ a [2] = {1、2、3、4、5 };“.

    3)如果在定义数组时为数组中的所有元素分配了初始值,则可能未指定数组的长度,因为已经确定了元素的数量. 我们在编程时经常使用这种书写方式,因为它很方便,不会有问题,也不需要自己计算几个元素. 系统将自动分配空间. 例如:

    int a[5] = {1, 2, 3, 4, 5};

    可以写为:

    int a[] = {1, 2, 3, 4, 5};

    在第二种书写方式中,大括号中有5个数字,因此系统将自动将数组a的长度定义为5. 但是,应注意的是,只有在定义数组时进行初始化时才能这样做. 如果在定义数组时未初始化,则省略数组长度是语法错误. 例如:

    int a[];

    然后它将在编译时提示错误,并且编译器将提示您未指定数组的长度.

    这是每个人的简单程序:

    # include

    int main(void)

    {

    int a[5] = {1, 2, 3, 4, 5};

    int i;

    for (i=0; i<5; ++i)

    {

    printf("%d\n", a[i]);

    }

    return 0;

    }

    7-810-jpg_6-1080-0-0-1080.jpg

    输出为:

    1

    2

    3

    4

    5

    a表示数组的名称,[5]表示数组具有5个元素,并由[0],[1],[2],[3]和[4]表示]. 并在大括号中将1、2、3、4、5分配给变量a [0],a [1],a [2],a [3],a [4]. 同样,下标从0开始,即从[0]而不是[1]开始.

    您还可以使用scanf从键盘手动初始化阵列:

    # include

    int main(void)

    {

    int a[5] = {0}; //数组清零初始化

    int i;

    printf("请输入5个数:");

    for (i=0; i<5; ++i)

    {

    scanf("%d", &a[i] );

    }

    for (i=0; i<5; ++i)

    {

    printf("%d\x20", a[i]);

    }

    printf("\n");

    return 0;

    }

    输出为:

    请输入5个数字: 1 2 3 4 5

    4495f628092369fed8a1abf39b25fc51.png

    1 2 3 4 5

    与使用scanf向字符数组输入字符串不同. 您必须使用for循环来输入数字. 不用在输入字符串时使用循环,只需使用scanf.

    一维数组元素的参考数组必须在使用前定义. C语言规定只能一一引用数组元素,而不能一次引用整个数组. 如前所述,数组元素的表示形式为:

    数组名[下标]

    下标可以是整数常量或整数表达式,例如:

    a[0] = a[5] + a[7] - a[2 * 3]

    请注意,定义数组时使用的“数组名称[常量表达式]”与引用数组元素时使用的“数组名称[下标]”有所不同. 定义数组时的常量表达式公式表示数组的长度,引用数组元素时的下标表示元素的编号. 例如:

    # include

    int main(void)

    {

    int a[5] = {1, 2, 3, 4, 5}; //定义长度为5的数组a

    int t;

    t = a[3]; /*引用数组a中下标为3的元素a[3], 此时的3不代表数组的长度*/

    printf("t = %d\n", t);

    return 0;

    }

    输出为:

    t = 4

    “ int a [5];”是定义了5个元素的数组一维数组的初始化方法,这5个元素是[0],[1],[2],[3],[4]. t = a [3]中的a [3]不是数组,而是元素a [3].

    因此,以下过程是错误的:

    # include

    int main(void)

    {

    int a[5];

    a[5] = {1, 2, 3, 4, 5};

    return 0;

    }

    错误的原因是,后面的[5]不是数组. 仅在定义时,“ [常数]”表示数组,方括号中的数字表示数组的长度. 除此之外,在程序中的任何位置都可以看到“ [constant]”不是数组,而只是数组的元素和变量. 这时,“ constant”表示元素的下标.

    此外,当单独为元素分配值时,您不能添加括号,因为元素是变量,即[5]只是变量名. 如何在最前面为变量分配值就是现在如何为数组元素分配值,例如“ a [5] = 1;”. 但是对于上述程序,这仍然是错误的. 因为数组元素的下标从0开始,所以数组a的元素只是[0]〜a [4],而没有[5]元素.

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/ruanjian/article-182590-1.html

    展开全文
  • a:动态初始化 只指定长度,由系统给出初始化值 格式: * 数据类型[] 数组名 = new 数据类型[数组长度]; * int[] arr = new int[5]; b:静态初始化的格式: * 格式:数据类型[] 数组名 = new 数据类型[]{...
  • 数组初始化的4种方式

    万次阅读 多人点赞 2019-04-26 13:06:30
    1. 直接给每个元素赋值 int array[4] = {1,2,3,4}; 2. 给一部分赋值,后面的全部为0 int array[4] = {1,2}; 3. 由赋值参数个数决定数组的个数 ...当初始化参数时,推荐使用 int array[4] = {0}; void Print(i...
  • 数组定义及初始化

    千次阅读 2021-09-21 17:14:14
    主要学习数组的初始化和数的常见操作等。 一、数组的概念 1.定义 数组(array)是一种数据格式,能够存储多个同类型的值。 2.声明数组 通用格式: TypeName ArrayName[ArraySize]; (1)TypeName :存储在数组中每...
  • c++数组初始化

    千次阅读 2021-04-27 10:47:52
    c++数组初始化写法 1.buf[size] = {0}; char buf[4] = {0}; 上述代码执行以后,整个buf都初始化为0,跟我们大部分人的预想是一样。 2.buf[size] = {value}; // value != 0 char buf[4] = {1}; 上述代码执行...
  • C++数组初始化及定义

    万次阅读 2019-01-05 08:31:26
    定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}; 定义并初始化了数组array 动态 int* array = new int[100]; delete []array; 分配了长度为100的数组array  动态 int* array = ...
  • 数组的初始化

    千次阅读 2017-07-30 11:20:50
     一直以来,初始化变量和数组常采用定义时赋值的方法,今天在定义一个结构体的时候发现了一些问题,查了下相关资料发现以往的使用确实有些误区,一直没有注意到,于是搜集了下零散的资料在此记录一下。 一、以往...
  • C语言数组初始化

    千次阅读 2019-01-13 23:23:20
    C语言数组初始化 wchar_t wname[128]={0}; char cname[256]={0}; 我感兴趣的是: ...当初始化值的个数少于数组元素个数时,前面的按序初始化相应值,后面的初始化为0(全局或静态数组)或为确定值(局部...
  • 数组的初始化问题

    千次阅读 2016-04-26 19:07:09
    一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下《The C++ ...数组可以用一个列值来初始化,例如  int v1[] ={1
  • Raptor-初始化数组的四种方式

    万次阅读 2019-12-19 01:34:36
    在初学Raptor时,经常会遇到如下问题:对10个同学的成绩进行排序、对一数进行排序、...通过利用数组,缓解了定义多个变量的困扰,下面以一维数组为例,简要介绍数组初始化数据的四种方式,并简要介绍其优缺点。
  • C语言 数组指针初始化

    千次阅读 2020-06-20 10:41:03
    当然不行,不管从初始化器,还是从原理上来讲都不正确,首先a[3][4]表示的是数组中第4行第5个元素,请问,可以对数组中具体的一个元素赋这么长一串值吗?所以能这样赋值。第一种写法是属于初始化初始化会自动...
  • 目录1 实型2 标识符3 变量4 一维数组4.1 注意点4.2 初始化5 二维数组5.1 初始化6 字符数组6.1 初始化6.2 与字符指针的比较7 结构体7.1 声明定义7.2 初始化7.3 结构体指针8 共用体9 枚举 1 实型 实型分为十进制小数...
  • 数组(Array)是在内存中连续存储的具有相同类型的一数据的集合。 数组是一相同类型元素的集合。*这些元素在内存中依次连续挨着存放。 数组中,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成...
  • C语言中,数组初始化的方式主要有三种:1、声明时,使用 {0} 初始化;2、使用memset;3、用for循环赋值。那么,这三种方法的原理以及效率如何呢?请看下面的测试代码:#define ARRAY_SIZE_MAX(1*1024*1024)void ...
  • C语言中,数组初始化的方式主要有三种:1、声明时,使用 {0} 初始化;2、使用memset;3、用for循环赋值。那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码:[cpp]view plaincopy#defineARRAY_SIZE_MAX(1*...
  • memset初始化详解+变量初始化最大值、最小值

    千次阅读 多人点赞 2019-08-20 08:54:38
    memset初始化详解+变量初始化最大值、最小值 计算机是使用二进制进行存储的,每一个二进制称为1位(bit),每8位称为1字节(Byte,B),1024字节称为1千字节(KB),1024千字节称为1兆字节(MB)。 换算关系: 1MB=1024KB 1KB...
  • PL/SQL 集合的初始化与赋值

    万次阅读 2012-05-01 16:15:47
    因此集合类型集合的声明、赋值、初始化较之单一类型而言,有很大的不同。尤其是嵌套表与变长数组,在赋值之前必须先初始化。当嵌套表和变长数组在声明时,它们都会自动地被设置成NULL值。也就是嵌套表和变长数组中...
  • C语言的数组初始化

    千次阅读 2018-07-06 15:25:45
    这是很基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定曾经了解过,但现在,我敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停重复.所以从今天开始,我会比
  • 先来看看常用的权值初始化方法,这是网络模型搭建好之后的一个非常重要的步骤,正确的权值初始化可以加速模型的收敛, 恰当的权值初始化导致输出层的输出过大或者过小,最终导致梯度爆炸或者消失,使得模型无法...
  • C++中变量默认初始化规则

    万次阅读 多人点赞 2017-09-25 23:00:54
    定义没有初始化式的变量时,系统有时候会帮我们初始化变量。系统如何初始化取决于变量的类型以及变量定义的位置...函数体内定义的变量进行自动初始化。除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都
  • C++11中的数组初始化

    千次阅读 2019-03-15 09:59:16
    此new表达式分配了一个含有 10 个int型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针pia。 在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接地访问堆中的对象。 注意:C++...
  • c语言一维数组初始化

    2016-07-15 21:55:14
    一般对数组初始化可以用以下方法实现: (1)在定义数组时对数组元素赋以初值。如: 1 static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始化后...
  • C++字符数组 定义和初始化 赋值和引用
  • 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,而解析阶段则一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。注意,这里的几个阶段是...
  • Java基础第一阶段测试题

    千次阅读 2021-02-28 16:45:24
    以下( )代码,能够对数组正确初始化(或者是默认初始化)。(选择一项) A、 int[] a; B、 a = {1, 2, 3, 4, 5}; C、 int[] a = new int[5]{1, 2, 3, 4, 5}; D、 int[] a = new int[5]; ...
  • 笔记-04-(2)

    千次阅读 2020-12-05 20:56:13
    2.下面正确初始化语句是(C ) A. char str[]=“hello”; B. char str[100]=“hello”; C. char str[]={‘h’,‘e’,‘l’,‘l’,‘o’}; D. char str[]={‘hello’}; 3.数组在Java中储存在(C ) 中 A....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,762
精华内容 14,704
关键字:

对数组初始化不正确