精华内容
下载资源
问答
  • 数组初始化

    2017-04-12 19:42:15
    数组初始化 数组初始化:向数组元素赋值 创建完数组尚未向其赋值时为空数组,元素区域为灰色(通常,全部元素缺省为0)。 当输入数组中元素全部为0时,输出数组中的元素也为0,布尔数组中指示灯不亮。 ...

    数组初始化

    数组初始化:向数组元素赋值

    创建完数组尚未向其赋值时为空数组,元素区域为灰色(通常,全部元素缺省为0)。

    当输入数组中元素全部为0时,输出数组中的元素也为0,布尔数组中指示灯不亮。

    当输入数组中元素不全为0时,输出数组中的元素也与输入数组的元素相同,布尔数组中对应元素不为0的指示灯亮。

    数组初始化前面板

    数组初始化程序框图

    展开全文
  • C++给二维数组初始化的方法:首先定义两个整型变量,并给二维数组初始化不同的数值;然后用二重循环,输出数组中的各个数值;最后用大括号括起来的数字直接赋值。本文操作环境:Windows7系统,Dev-C++ 5.2.0.3版本,...

    C++给二维数组初始化的方法:首先定义两个整型变量,并给二维数组初始化不同的数值;然后用二重循环,输出数组中的各个数值;最后用大括号括起来的数字直接赋值。

    本文操作环境:Windows7系统,Dev-C++ 5.2.0.3版本,Dell G3电脑。

    【相关学习推荐:C语言教程视频】

    C++给二维数组初始化的方法:

    1、首先,定义两个整型变量,控制二维数组的输出。

    2、接着,给二维数组n[3][4]初始化不同的数值。

    3、最后,用二重循环,输出数组中的各个数值。

    4、二维数组可以用大括号括起来的数字直接赋值,内层大括号中每对表示一行,每对内层大括号中的值表示一行中的各数值(注意大括号中的数值要与二维数组的元素个数对应)。

    5、运行程序,可以看到二维数组中的值,成功输出了。

    6、如果,只给二维数组中的部分元素赋值,例如只给一行赋初值,会出现什么情况呢?

    7、运行程序,可以看到数组中,只有第一行有设置的初值,其他行的值都为0。

    展开全文
  • 一维数组初始化: 动态初始化:(声明并开辟数组) 数据类型[ ] 数组名称=new 数据类型[长度] int[ ] data=new int [5] :声明并开辟一个长度为5的数组 数组通过下标索引来获取元素,下标默认从0开始。数组下标...

    数组属于引用数据类型,在使用前必须初始化,否则会报NullPointerException(空指针异常:运行时异常)
    一维数组初始化:
    动态初始化:(声明并开辟数组)
    数据类型[ ] 数组名称=new 数据类型[长度]

    int[ ] data=new int [5] :声明并开辟一个长度为5的数组

    数组通过下标索引来获取元素,下标默认从0开始。数组下标超出数组长度,数组越界异常(运行时异常)

    数组中每个元素都有默认值,默认值是该数据类型默认值

    数组长度:数组名称.length

    数组遍历推荐使用JDK1.5 提供for-each循环(仅限于数组内容读取),要修改数组内容,还是使用常规for循环

        for(int x : data)
    

    {
    System.out.println(x+" ");
    }
    引用传递:多个栈内存指向同一块堆内存

    int[ ] tmp=data; //引用传递 注意是地址的传递
    tmp[3]=10; ----> x[3]=10;

    数组静态初始化
    简化格式:
    数据类型[ ] 数组名称 ={值,值…}
    完整格式: (推荐使用)
    数据类型[ ] 数组名称 =new 数据类型[ ]{值,值…}
    int[ ] data =new int[ ] {1,2,3} ;

    长度 :数组名称.length ,静态初始化长度固定,根据值的个数确定长度,并且长度不可修改

    匿名数组:没有任何栈内存指向,在使用一次后会变成垃圾,只会使用一次

    二维数组
    动态初始化:数据类型[ ][ ] 数据名称 =new 数据类型[ 行个数] [列个数]

    int[ ] [ ]data =new int [3][4];开辟行数为3,列数为4的整型数组

    静态初始化:
    数据类型[ ][ ] 数组名称 =new 数据类型[ ][ ]{ {第一行的值},{第二行的值}…}

    int[ ][ ] data={{1,2,3},{4,5,6},{7}};

    x<data.length

    y<data[x].length

    对象数组初始化:

    首先看对象数组动态初始化:

    对象数组动态初始化
    public class ArrayDemo
    {
        public static void main(String[] args)
        {
            String[] str=new String[3];  //数组动态初始化,每个元素都是其对应数据类型的默认值
            for(String num :str)
            {
                System.out.print(num+"、"); //null、null、null、
            }
            str[0]=new String("pick");
            str[1]=new String("happy");
            str[2]=new String("day");
           for(String num :str)
           {
               System.out.print(num+"、"); //pick、happy、day、
           }
        }
    }
    

    对象数组静态初始化:

    public class ArrayDemo
    {
        public static void main(String[] args)
        {
            String[] str=new String[]{"pick","happy","day"};  //数组静态初始化,pick、happy、day、
           for(String num :str)
           {
               System.out.print(num+"、"); //pick、happy、day、
           }
        }
    }
    
    展开全文
  • 看到C++将数组初始化为全0的这个用法: int a[100] = {0};// 初始化一个全0的数组 你可能会举一反三,使用如下代码来初始化一个全1数组 int a[100] = {1}; 但是这句代码的执行结果是:得到一个第一个数为1,其他数...

    看到C++将数组初始化为全0的这个用法:

    int a[100] = {0};// 初始化一个全0的数组
    

    你可能会举一反三,使用如下代码来初始化一个全1数组

    int a[100] = {1};
    

    但是这句代码的执行结果是:得到一个第一个数为1,其他数全部为0的数组。感觉非常坑爹。
    究其原因,正如C/C++ int数组初始化中所述,数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值。
    这个结论在bool数组的初始化中同样适用:

    bool b[100] = {false};// 初始化一个全为false的数组
    bool b[100] = {true};// 初始化一个b[0]为true,其他为false的数组
    

    还是用memset来进行初始化比较好:

    //int a[100];
    //memset(a, 1, sizeof(a));// 不能初始化一个全1的数组
    bool b[100];
    memset(b, true, sizeof(b));// 可以初始化一个全为true的数组
    

    感谢评论区@Mreak233的指正,使用memset(a, 1, sizeof(a))并不能初始化一个全1的数组,实际运行之后,数组中的每个值都是16843009,即二进制的00000001 00000001 00000001 00000001
    引用关于C++ memset函数使用的问题中的 【3.挖掘背后的原因】中的话,其原因在于

    为什么使用memset函数会出现这些情况呢?原因很简单就是由于memset函数在做初始化的时候是以字节为单位的(1Byte,也就是8位二进制数)。由于bool类型和char类型均为1个字节。所以在进行初始化的时候不会发生任何问题(bool类型在存入数组是会进行类型转换,0为false,非0为true)。但是一个int型变量是4个字节,也就是32位二进制数。那么在初始化时会将4个用于初始化的字符组合成一个int型的值。

    如果要将int数组全部初始化为一个非0数的话,建议使用for循环进行赋值。https://bbs.csdn.net/topics/360017909

    展开全文
  • C语言数组初始化

    千次阅读 2017-01-31 11:12:06
    数组初始化
  • Java数组初始化

    千次阅读 2019-05-06 22:34:32
    1.Java数组初始化的两种方法: 静态初始化:程序员在初始化数组时为数组每个元素赋值; 动态初始化:数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。 Java数组是一种引用数据类型。数组...
  • 最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,...结构体是可以直接初始化的,在定义的时候,就可
  • 一维数组初始化

    2017-08-18 20:54:14
    数组初始化
  • 一般的初始化是使用小括号()。 给数组初始化是使用大括号{}。 class base{ char a[10]; public: base():a{{}}{} } 上例的初始化就相当于:a[10] = {};。
  • C/C++数组初始化的总结

    万次阅读 多人点赞 2018-12-11 16:19:15
    数组初始化的几种形式 数组初始化为某一固定值 memset(数组名,值,sizeof(数组名)) fill(begin(),end(),value) 以前刚开始学数组初始化,一直都没搞太清楚,包括参加PAT考试,直到看了胡凡的《算法笔记》,逐渐...
  • DATE: 2020.11.23 文章目录1、参考2、结构体数组初始化 1、参考 Problems Initializing Structures 2、结构体数组初始化
  • 怎么将嵌套的数组的数组名定义在数组初始化之前?怎么在数组初始化之后再设置数组的长度并且进行数组下标的复制?
  • 对象数组初始化

    2019-04-13 07:59:35
    学堂在线 c++程序设计 郑莉 第六章数组 指针 ...对象数组初始化 数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。 通过初始化列表赋值。 例:Point a[2]={Point(1,2),Point(3,4)}; ...
  • Java 数组初始化

    2016-08-16 09:55:25
    对于数组类型可以匿名数组初始化
  • 数组初始化的方式

    2019-09-13 17:10:14
    数组初始化的两种方式:1.静态初始化 2.动态初始化 无论是哪种初始化方式,一旦初始化完成,数组的长度就固定不变了,除非重新初始化。也就是说数组是定长的。 数组的静态初始化操作: 特点:由我们自...
  • JAVA数组初始化

    万次阅读 2018-05-24 15:56:15
    JAVA数组初始化主要有两种方式,如下: dataType[] arrayRefVar;或者dataType arrayRefVar[]; 其中dataType可以是java支持的八中数据类型的任意一种,前者为首选方法; 通常用法如下: 创建一个包含n个元素的...
  • 二维数组初始化

    2019-03-21 18:54:28
    原来自己对二维数组初始化不了解。 总结一下: List<XXX> bSinErrs = bsInErrDao.getBSinErrByFileName(filename); String[] titles = Constant.EXCEL_TITLE; // 给二维数组初始化 String[][] content =...
  • 数组初始化总结

    2018-12-20 15:10:44
    初始化数组为0: 1.静态变量和全局变量初始化时会自动设为0。 #include&amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;gt; int array[100]; int main() { } 或者 int main() { static ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,080
精华内容 19,232
关键字:

数组初始化