精华内容
下载资源
问答
  • c语言 全局(静态)和局部数组初始化

    千次阅读 2013-11-14 17:44:09
    全局和静态数组根据规范要求初始化为0, 但是局部数组如果不显示初始化,它的值不确定。 code: result:

    全局和静态数组根据规范要求初始化为0,

    但是局部数组如果不显示初始化,它的值不确定。 但是如果初始化了最开始的几个数组元素,那么剩下的所有元素编译器将初始化为0.

    e, f, g,有初始化,则剩下的元素默认初始化为0;h无初始化, 所有值均不确定。


    code: <gcc>


    result:


    展开全文
  • 局部数组初始化问题

    2012-11-20 11:57:51
    局部数组可以这样初始化:char tmp[1300] = {0};结果是数组的元素全部是0,如果是char tmp[1300] = {1},数组的元素除第一个是1外全是0.这个是语言的特性还是编译器的?
  • 数组初始化

    2018-12-29 15:19:15
    ##全局(静态)和局部数组初始化 全局和静态数组根据规范要求初始化为0, 但是局部数组如果不显示初始化,它的值不确定。 但是如果初始化了最开始的几个数组元素,那么剩下的所有元素编译器将初始化为0. e, f, g,有...

    ##全局(静态)和局部数组初始化
    全局和静态数组根据规范要求初始化为0,

    但是局部数组如果不显示初始化,它的值不确定。 但是如果初始化了最开始的几个数组元素,那么剩下的所有元素编译器将初始化为0.

    e, f, g,有初始化,则剩下的元素默认初始化为0;h无初始化, 所有值均不确定。
    在这里插入图片描述
    ##初始化字符数组
    初始化字符数组有两种方法,
    一种是:
        char array[10]={“hello”};
    另一种是:
        char array[10]={‘h’,‘e’,‘l’,‘l’,’\0’};
      第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,’\0’补上。另外, 这种方法中的花括号可以省略,即能表示成:
        char array[10]=“hello”;
      第二种方法一次一个元素地初始化数组,如同初始化整型数组。这种方法通常用于输入不容易在键盘上生成的那些不可见字符。
      例如,下面的代码中初始化值为若干制表符:
        char chArray[5]={’\t’,’\t’,’\t’,’\t’,’\0’);
      这里不要忘记为最后的,’\0’分配空间。如果要初始化一个字符串"hello",那为它定义的数组至少有6个数组元素。
      例如,下面的代码给数组初始化,但会引起不可预料的错误:
        char array[5]=“hello”;
      该代码不会引起编译错误,但由于改写了数组空间以外的内存单元,所以是危险的。

    展开全文
  • 首先要理解的是,局部变量存储...现在,发生的是,当您将数组引用声明为局部变量时,并使用数组初始化:int[] in = new int[5];数组引用(in)存储在堆栈中,为数组分配一个内存,能够在堆上保存5个整数元素(记住,对...

    首先要理解的是,局部变量存储在堆栈中,这些变量没有使用它们的默认值显式初始化。实例变量存储在堆中,默认情况下使用默认值进行初始化。

    而且,在堆上也创建对象,无论实例引用变量是否保存其引用,还是本地引用变量。

    现在,发生的是,当您将数组引用声明为局部变量时,并使用数组初始化:

    int[] in = new int[5];

    数组引用(in)存储在堆栈中,为数组分配一个内存,能够在堆上保存5个整数元素(记住,对象是在堆上创建的)。然后,在堆上分配用于存储整数值的5个连续的存储单元(size = 5)。并且数组对象上的每个索引依次保存对这些内存位置的引用。然后数组引用指向该数组。因此,由于5个整数值的内存在Heap上分配,所以它们被初始化为其默认值。

    而且,当您声明数组引用时,也不要用任何数组对象初始化它:

    int[] in;

    数组引用是在Stack上创建的(因为它是一个局部变量),但是默认情况下它不会被初始化为数组,并且与实例变量一样也不会变为null。

    所以,当您使用数组声明和初始化的第一种方法时,这是分配的方式:

    "Your array reference"

    "on stack"

    | | "Array object on Heap"

    +----+

    | in |----------> ([0, 0, 0, 0, 0])

    +----+

    "Stack" "Heap"

    展开全文
  • C语言-基础教程-数组的初始化5.4.1数组初始化C语言允许在说明时对全局数组和静态局部数组初始化,但不能对非静态局部数组初始化。与其它变量相似,数组初始化的一般形式如下:type-specifierarray_name[size1]......

    C

    语言

    -

    基础教程

    -

    数组的初始化

    5.4.1

    数组初始化

    C

    语言允许在说明时对全局数组和静态局部数组初始化,但不能对非静态局部数组

    初始化。

    与其它变量相似,数组初始化的一般形式如下:

    type-specifier array_name[size1]...[sizen]={value-list};

    数值表是一个由逗号分隔的常量表。这些常量的类型与类型说明相容,第一个常量

    存入数组的第一个单元,第二个常量存入第二个单元,等等,注意在括号

    "

    }"

    后要加上分号。

    下列中一个

    1 0

    元素整型数组被初始化装入数字

    1

    1 0

    int i[10]={1

    2

    3

    4

    5

    6

    7

    8

    9

    1 0 } ;

    这意味着

    i [ 0 ]

    的值为

    1

    ,而

    i [ 9 ]

    的值为

    1 0

    存放字符串的字符数组的初始化可采用如下简化的形式:

    char array_name[size] = "sing";

    例如,以下代码段将

    s

    初始化为

    " h e l l o"

    char s[6] = "hello";

    上面代码产生和下面代码相同的结果:

    char s[6]={'h'

    ' e '

    ' l '

    ' l '

    ' o '

    ' \ o ' } ;

    因为

    C

    语言中的字符串都以空(

    N U L L

    )字符为终结,故要确认定义的数组足够

    长以存放空字符。这就是为什么

    h e l l o

    只有

    5

    个字符,而

    s

    要有

    6

    个字符长的原因。使

    用字符串常量时,编译程序自动地在末尾加上空字符。

    多维数组初始化的方法与一维数组相同,例如,下式将

    s

    q

    r

    s

    初始化为从

    1

    1

    0

    及它们各自的平方数。

    int sqrs[10][2]={

    1

    1

    2

    4

    3

    9

    4

    1 6

    展开全文
  • 局部数组初始化,将用随机数填充 #include&lt;cstdio&gt; using namespace std; const int MAXN = 5; int A[MAXN];//全局 static int B[MAXN];//静态 void Print(int a[MAXN]){ for (int i = 0; i &...
  • 定义数组后,未初始化 #define LEN1 5 static int array_static_glogal[LEN1];//定义静态全局数组,未初始化数组成员 int array_glogal[LEN1]; //定义全局数组,但未初始化数组成员 int main() { char ...
  • 但如果定义成局部数组,则必须要先初始化 int a[10]; memset(a,0,sizeof(a)); 一般开全局数组比较大,最大约等于5*10^8,也就是开不到10^9级别的数组,当遇到这种情况,可以考虑离散化。 所以一般全局...
  • 数组初始化总结

    2018-12-20 15:10:44
    整型数组 初始化数组为0: 1.静态变量和全局变量初始化时会自动设为0。 ...2.对于局部数组我们还有简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元素会被自动设置为相应类型的0。
  • 大括号中的以逗号分隔的数据项称为数组初始化器(array initializer)。每个数据项都可以是一个任意复杂度的表达式; 在多维数组的情况下,则可以是一个嵌套的数组初始化器。 可以利用 C# 的 隐式类型的局部变量...
  • C语言数组初始化

    千次阅读 2019-01-13 23:23:20
    C语言数组初始化 wchar_t wname[128]={0}; char cname[256]={0}; 我感兴趣的是: 1. 这种赋值的结果。 2. 这种形式是否符合标准编码规则? 我找到了如下资料,可能有助于对这个知识点的掌握。 /*初始化值的...
  • 后来一查发现全局数组和局部数组初始值结果还不一样 先来看一段代码 #include<stdio.h> int a[5]; int main() { int i; int b[5]; printf("全局数组:\n"); for(i=0;i<5;i++){ printf("%d ",a[i]);...
  • C语言数组初始化问题

    千次阅读 2015-03-31 12:22:37
    对于局部数组初始化元素个数少于数组元素个数时,数组前面的元素值对应初始化值,后面未被初始化的元素自动初始化为0;但当局部数组定义时,没有用列表对其初始化,那么数组元素的值是不可预料的,在编程的时候要...
  • 在程序调试过程中,发现在函数内部定义的数组初始化不正确, _Bool buff2[2] ={true,true}; 定义时初始化为true,但是程序执行时,结果却为0, 于是查找工程的内存分配,发现在调用函数时,数组buff2已经越界...
  • C语言数组初始化方式

    2013-03-31 23:42:00
    C语言的数组记得初始化这个是比较好的习惯,对于全局数组来说如果没有初始化的话一般是会被赋值成0值,但是对于局部数组来说则是要看操作系统和编译器而定,所以是不确定的,所以一定要记得数组初始化,防止因此出现...
  • 数组初始化问题

    2020-01-23 22:55:08
    局部数组` #include <iostream> using namespace std; int a[3]; int main() { int b[3] = {1}; int c[3]; for(int i = 0 ; i < 3; i++) cout<<"全局数组a["<<i<<"]:"<<a...
  • c++数组初始化问题

    2019-09-11 21:25:51
    全局,静态数组自动填充0,局部数组以随机数填充
  • C语言的数组初始化

    2011-06-08 21:27:00
    局部数组没有初始化的元素的值,这几种编译器都将其设置为0.但是,如果如果不对数组进行初始化,即在定义的同时没有用列表初始化,那么局部数组的值就取决于编译器而对程序员来说就是不可预料的了.有时间可以测试一下...
  • C++数组初始化

    2017-03-13 18:55:00
    局部数组:没有默认值,如果声明的时候不定义,则会出现随机数(undefined); 全局数组:声明时不赋值,默认值为0 转载于:https://www.cnblogs.com/QingHuan/p/6544461.html...
  • C++数组初始化,

    2019-11-15 16:46:06
    定义在函数体内的内置类型的对象(局部变量),如果没有显示初始化,则...或者手动初始化初始化个数小于数组长度的,剩余元素会自动初始化成默认值0 int a3[10] = {1}; 全局变量的内置类型会自定初始化为默认值0,...
  • 分析:主要原因是局部变量的数组没有进行数组的初始化工作,导致i=7及以后的申请空间分配随机数,所以在使用数组前要进行初始化,下面是总结关于数组初始化的一些问题。 以前我这样初始化一个数组,并自我感觉良好...
  • C 语言数组初始化

    2016-07-15 23:13:01
    如果初始化时指定的的元素个数比数组大小少,剩下的元素...如果不对数组进行初始化,即在定义的同时没有用列表初始化,那么局部数组的值就取决于编译器而对程序员来说就是不可预料的了 gcc扩展: #include <stdio.h> i
  • 执行初始后打印消息为:buffer 0x0012ee94 "0000000000000000000000000000000000烫烫烫烫烫1407750548" 后面是组装buffer里的数据,然后发送,发送前的打印为: buffer 0x0012ee94 "C000000000000VI...
  • 局部变量不会被初始化,而new一个数组后会被初始化为0
  • C++数组初始化的问题

    2013-08-18 20:58:00
    数组的初始化可以在声明的同时进行,也可时候在进行初始化。下面要讨论的是,初始化的默认值问题。 是这样的。 数组分为两种,一种是全局的...局部数组:(比较特殊)如果全部元素在声明时候均为赋值,初始值未莫...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,300
精华内容 520
关键字:

局部数组初始化