精华内容
下载资源
问答
  • 对数组a的初始化
    千次阅读
    2014-02-17 17:17:46

    int  a[10]={0};

    此代码只对a[0]做了初始化,其余默认为0;

    亦如;int a[10]={9};则a[0]为9,其余默认为0;

    但是如果int  a[10];并没有初始化,则值未知,运行时报错。


    变量的初始化非常重要,应在声明时就进行初始化。否则到最后经常出现莫名其免的问题,往往很难想到变量的初始化问题上

    更多相关内容
  • 使用花括号进行的列表初始化语法,其实早在C++98时代就有了,只不过历史上他们只是被用来对数组元素进行初始化操作,以及初始化自定义POD类型的数据(简单理解就是可以memcpy复制对象的类型)。比如: int v1[] = {1,...
  • 数组的初始化

    千次阅读 2021-04-14 20:41:09
    一维数组有两种初始化方法: (1)动态初始化:手动输入数组的长度,由系统为数元素赋值。 格式: 数据类型[] 数组名 = new 数据类型[数组长度]; 数组长度其实就是数组中元素的个数。 eg: int arr[]=new int[3]; ...

    IDEA的入门小技巧:
    快速生成主方法:psvm;
    快速生成输出语句:sout;
    单行注释快捷键:“ctrl+/”;
    多行注释快捷键:“ctrl+/”(每行都是单行注释)或者“ctrl+shift+/”(多行一块注释);
    包的命名规范:字母小写,级与级直接用“.”隔开;
    for循环的快速生成方式:
    (1)num.fori 递增循环
    eg:

    10.fori 表示的是for(int i=0;i<10;i++){}
    

    (2)num.forr 递减循环
    eg:

    10.forr 表示的是for(int i=10;i>0;i--){}
    

    万能纠错键(补全键):alt+Enter
    快速补全:sth().var
    eg:

     sc.nextInt().var会自动生成int index=sc.nextInt()
    

    数组:数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
    数组既可以存储基本数据类型,也可以存储引用数据类型。

    初始化:为数组分配内存空间,并为数组中的元素进行赋值。初始化可分为动态初始化和静态初始化。动态初始化只指定长度,由系统给出初始化值(整型默认为0,浮点型默认为0.0,字符串型默认为null等)。静态初始化:给出初始化值,由系统决定长度。
    一维数组有两种初始化方法:
    (1)动态初始化:手动输入数组的长度,由系统为数组元素赋值。
    格式: 数据类型[] 数组名 = new 数据类型[数组长度];
    数组长度其实就是数组中元素的个数。
    eg:

    int arr[]=new int[3];
    	arr[0]=33;
    	arr[1]=524;
    

    数组并不一定是整型,还有浮点型(double),布尔型(boolean),字符型(char)等等
    (2)静态初始化:由我们为数组元素赋值,由系统计算长度
    int[]arr1=new int[]{1,2,3};
    Int[]arr1={1,2,3,4};(简写方式)
    注意事项 这两种方式,只能使用一种,不能进行动静结合

    在使用数组过程当中,容易遇到的异常。
    a:ArrayIndexOutOfBoundsException:数组索引越界异常
    原因:访问了不存在的索引。
    b:NullPointerException:空指针异常
    原因:数组已经不在指向堆内存了。而还用数组名去访问元素。
    可以把一个对象使用完之后,置为null ,有利于垃圾回收器,回收这个对象。

    二维数组的定义
    (1)动态初始化
    数据类型[][] 变量名 = new 数据类型[m][n];
    m表示这个二维数组有多少个一维数组
    n 表示每个一维数组中的元素个数
    注:n可写可不写,当没有写时,内存中没有给一维数组开辟空间,默认为null。 当写了时,一维数组元素默认值为0(int型为例)
    eg:

    int[][]arr1=new int[3][4];
    	arr1[2][2]=3;
    

    (2)静态初始化
    数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
    简写为:
    数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
    这个格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度
    eg:

    int[][]arr2=new int[][] {{1,2,3},{4,5,6}};
    	int[][]arr3={{1,2,3},{4,5,6}};
    

    补充:还有两种格式可以表示二维数组(罕见):
    数据类型 数组名[][] = new 数据类型[m][n];
    数据类型[] 数组名[] = new 数据类型[m][n];

    数据类型:基本数据类型和引用数据类型。
    (1)基本数据类型:四类八种
    (2)引用数据类型:数组,类,接口,都属于引用数据类型,简单记忆,需要new出来的就 是引用数类型。
    局部变量:就是是定义在方法中,或方法声明上的变量(形参)的变量,局部变量,存储在 栈内存。
    int num=100; //局部变量
    形参也是局部变量
    定义在方法中的变量,是局部变量

    栈和堆的理解
    : 存放的是局部变量。
    局部变量:在方法定义中或者方法声明上的变量都是局部变量。
    : 存放的是所有new出来的东西。
    特点:
    a: 每一个new出来的东西都会为其分配一个地址值。
    b: 每一个变量都有一个默认的值
    byte,short,int,long – 0
    float,double – 0.0
    char – ‘\u0000’
    boolean – false
    引用数据类型 – null
    c: 使用完毕就变成了垃圾,等待垃圾回收器对其回收

    递归:在定义方法中,方法调用方法本身的现象。
    注意事项
    (1)要有判断条件,达到一定条件时递归完成。否则就是死循环;
    (2)递归次数不能太多,否则会报错(内存溢出)。

    展开全文
  • //一般对数组初始化可以用以下方法实现: #include using namespace std; int main(){ //一般对数组初始化可以用以下方法实现: //(1)在定义数组时对数组元素赋以初值。如: int a[8] = {0,1,2,3,4,5,6,7}; cout<<"a...
    //一般对数组初始化可以用以下方法实现:
    #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;
    }
    

    展开全文
  • memset对数组初始化

    千次阅读 2015-06-14 01:09:22
    花了半个下午,总结了一下memset对int,long long,char型数组的初始化。//0x(零和英文字母x)是十六进制的前缀(十六进制不区分大小写) //memset对字节赋值 #include #include using namespace std; const int maxx...

    好久没更新了。
    花了半个下午,总结了一下memset对int,long long,char型数组的初始化。

    //0x(零和英文字母x)是十六进制的前缀(十六进制不区分大小写)
    //memset对字节赋值
    #include<iostream>
    #include<cstring>
    using namespace std;
    const int maxx=3;
    int main()
    {
        //char的int值范围在-128~127  0~127为正值,从128~255为-128~-1
        //int,char,long long型的数组赋为最大(其实是-1)
        int a[maxx][maxx];
        //char a[maxx][maxx];
        //long long a[maxx][maxx];
        memset(a,0xff,sizeof(a));//一个f是二进制下4个1,两个f是8个1,刚好是一个字节
        //memset(a,-1,sizeof(a));
    
    
        //把int赋为最大值
        int b=0x7fffffff;//(7个f)(32进制的int,b的二进制中第一个为0其余全为1) (值为2147483647(10位))
    
    
        //把int数组赋为较大值(memset是对字节赋值,无法把数组赋为最大值(最大值是7fffffff,循环节不是4))
        //此处的较大值与最大值同一个数量级,是1061109567,约为最大值2147483647的一半
        int c[maxx][maxx];
        memset(c,0x3f,sizeof(c));
        //3f是6个1,7f是7个1(四个3f是1061109567,四个7f是2139062143)(虽然可以用7f但是用7f可能会在运算时出错,而3f则比较安全)
    
    
    
        //与int同理,long long的用法见下
        //long long最大值
        long long d=0x7fffffffffffffff;//(15个f)(值为9223372036854775807(19位))
    
    
        //long long 数组的最大值
        long long e[maxx][maxx];
        memset(e,0x3f,sizeof(e));//为4557430888798830399(19位)
    
    
        //测试
        cout<<b<<" "<<d<<" "<<endl<<endl;
        for(int i=0;i<maxx;i++)
        {
            for(int j=0;j<maxx;j++)
                cout<<a[i][j]<<" ";
            cout<<endl;
        }
        cout<<endl;
        for(int i=0;i<maxx;i++)
        {
            for(int j=0;j<maxx;j++)
                cout<<c[i][j]<<" ";
            cout<<endl;
        }
        cout<<endl;
        for(int i=0;i<maxx;i++)
        {
            for(int j=0;j<maxx;j++)
                cout<<e[i][j]<<" ";
            cout<<endl;
        }
    }
    
    展开全文
  • 已定义的数组a有5个元素,但在花括号中仅提供了两个初始值,这意味着仅初始化了前两个元素a [0]和a [1],而后三个元素是没有初始化. 如果未完全初始化,则未初始化的元素会自动设置为0. 应注意,“未完成初始化”与...
  • Please solve my problem.... The STL std::string class is a preferable text container, it provides the c_str() method as a convenient way to pass it to functions expecting C-like strings.
  • 如何在Java中声明和初始化数组?

    千次阅读 2021-03-15 21:18:24
    慕虎7371278有两种类型的数组。...给定值的语法(变量/字段初始化):int[]num={1,2,3,4,5};或者(不太喜欢)intnum[]={1,2,3,4,5};注意:为了方便int [] num更可取,因为它清楚地告诉你这里是关于数组的。否...
  • Java中对数组的声明与初始化

    千次阅读 2021-03-15 21:18:03
    Java语言中,使用数组必须经过数组的声明和分配储存空间两个步骤。... 在声明数组的时候虽然默认初始值NUL表示没有分配储存空间,建议声明时一定要给出默认值。(数组类型属于引用类型,赋值为null表示还指向...
  • 常用的初始化方式 int arry1[5] = {1,2,3,4,5}; int arry1[5] = {0}; int arry3[] = {1,2,3,4,5}; 乱序初始化 #include <stdio.h> int main(void) { int i=0; int a[]= { [0]=0, [3]=33, [2]=22, ...
  • C++数组初始化方法

    千次阅读 2020-12-31 08:50:11
    //array of 10 uninitialized ints此new表达式分配了一个含有 10 个int型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针pia。在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接...
  • 现代C++如何高效地初始化数组

    千次阅读 2021-02-19 22:39:31
    简单记录一下使用constexpr将数组的初始化放到编译期计算的技巧。
  • 给数组赋值的方法除了用for循环和赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。 数组初始化赋值是指在数组定义时给数组元素赋予初值。 1-2 一维数组的初始化 例如: int a[5]={1,2,3,4,5}; ...
  • C++ VS中如何用变量初始化数组

    千次阅读 2017-07-29 09:04:06
    也许在别的编译软件中定义一个const int 的变量就可以初始化数组,但我的VS2013中总报错,于是我用的方法是Vector 1.头文件 #include 2.设置变量 int a,b,length;  cin>>a;  
  • C语言-数组的定义、初始化和使用

    千次阅读 2020-12-09 10:23:00
    换句话说,数组是在内存中连续存储的具有相同类型的一数据的集合。 一维数组 一维数组的定义方式如下: 类型说明符 数组名[常量表达式]; 例如: int a[5]; 它表示定义了一个整型数组,数组名为 a,定义的数组...
  • 前言:在上一篇文章中说到了指针变量和普通变量的区别,那么这一篇文章中就来说说指针和数组的关联。指针和数有相似之处,却又不尽相同。
  • 数组定义及初始化

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

    千次阅读 2021-05-19 09:29:16
    1、定义的时候直接用字符串赋值char a[10]="hello";...2、对数组中字符逐个赋值char a[10]={'h','e','l','l','o'};3、利用strcpychar a[10]; strcpy(a, "hello");易错情况:1、char a[10]; a[10]="hello"...
  • 初始化概述02. 指定初始化数组元素03. 指定初始化结构体成员变量04. Linux内核中应用05. 初始化总结06. 附录 01. 初始化概述 在标准 C 中,当我们定义并初始化一个数组时,常用方法如下: int a[10] = {0, 1, 2, 3,...
  • C语言对数组初始赋值还有以下几点规定:1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如: staticint a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动...
  • 如何判断数组已经初始化

    千次阅读 2018-12-07 03:04:42
    VBA编程中经常用到数组,在代码中使用数组之前,需要确保数组已经完成初始化操作,借助API可以进行判断。 Private Declare Function SafeArrayGetDim Lib &amp;amp;quot;oleaut32.dll&amp;amp;quot; (ByRef ...
  • 类数组的初始化

    千次阅读 2018-10-02 08:39:22
    省略构造函数的方法仅适用于单参构造函数,即便用圆括号括起来,也等价于用圆括号中的最后一个值来单参初始化。所以在原结构/类有单参构造函数的情况下,下面的初始化都是合法而且等价的: Point p[3] = { (2,5...
  • C语言数组的初始化表示方法

    万次阅读 多人点赞 2019-07-25 10:51:22
    经过上面的定义和初始化后,a[0]=0,a[1]=1,… ,a[9]=9。 (2)初始化时可以只对一部分元素赋初值。例如: static int a[10]={0,1,2,3,4}; 定义的数组有10个元素,但只对其中前...
  • CSP 202203-1 未初始化警告 python 题目描述 样例输入输出 思路 这道题的思路很简单,也就是查看前面出现的左值中,是否有当前语句的右值,如果没有,说明未初始化。 所以我们可以设置一个标记数组,将正确的数...
  • 数组部分初始化

    千次阅读 2020-02-06 21:33:38
    数组部分初始化 1.一维数组,例如int a[10]={0,1,2,3,4};定义a数组有10个元素,但只给前面5个元素赋初值,后5个元素值为0。 2.二维数组,int a[3][4]={{1},{5},{9}};定义3行4列的数组a,只对各行第1列的元素赋初值,...
  • C++中类的数据成员如何初始化

    千次阅读 2020-03-10 18:25:10
    C++中类的数据成员初始化,首先需要明白在类中都有哪些数据成员 const成员:也就是常量成员,它们在声明时就要初始化,因为它们为常量成员,一旦定义,就不能修改 引用成员&:引用代表的就是被引用者自身,是...
  • #include #include #include//时间头文件 int main() { time_t ts;//设置时间变量 unsigned int randdata = time(&ts);//获取时间,转换为无符号int ... //用随机数初始化数组 for(int i=0;i;i++) {
  • Java 数组的两种初始化方式

    千次阅读 2021-03-15 14:50:20
    一、数组1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道...2.随机的对数组进行增删元素,当增加元素的时候,为了保证数组中元素在空间存储上是有序的,所以被添加元素位置后面...
  • C 语言字符数组的定义与初始化

    千次阅读 2020-12-18 18:00:02
    1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,343
精华内容 28,937
关键字:

对数组a的初始化