1,未初始化,其值有两种可能:一种是全局数组,被编译器初始化为0。一种是局部数组,为随机数。2, 已初始化,局部数组和全局数组,已初始化,未赋值的数组都会被赋值为0。
因为变量有赋值与声明两个不同的步骤。变量只要声明了就存在,则有值。赋值只是改变它的值。所以此处 i...
普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。例子:includeint main(void){ int m = 0;static int n;int a = 5, b = 6, c = ...
未赋值的元素自动补0,不过这只是大多数编译器的做法。有的编译器编译后元素值是不可预料的
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
如果赋值了一项其余就是0,如果是int a[10]={1}其余各项就是0;如果只有int a[10]那么就是随机数
你看,数组可以给指针赋值,指针之间也可以相互赋值,但是数组就是不能象指针一样相互赋值。我叔,你说了半天,我越听越郁闷,难怪都说C语言难学,我看不是C语言难学,而是设计的一点都不合理,哼!我哈哈大笑道,C语言设计之初,就没有考虑是否容易学习。汤普森当初是先写了一款游戏给自己玩的,但是游戏开发好...
C语言里面的栈区存放的变量(局部变量,函数的形参)是不会自动清零,所以在内存a[4]上,是什么就是什么,你的内存当时刚好是个'a'。会对内存清零的内存块是BSS段,既未初始化的全局变量。
b.若花括号“{}”中所赋字符个数小于所定义的字符数组长度,则按字符数组元素在内存中的顺序依次赋值后,未赋值的数组元素将自动赋予字符串结束符′\0′。 二、字符串输入输出函数 1.字符串输入函数 格式:gets(字符数组) 功能:从终端输入一个字符串(可包含空格)以回车为输入结束标志,将接受到的字符一次赋值给字...
如果你使用的是VC,那么在debug下非静态变量的初始值不会是0.一般地:int a[5]; // 不建议使用,可能初始值为0,也可能不是 int a[5] = {0}; // 全部初始化为0 或者int a[5] = {0};memset(a, 0, sizeof(int)*5);