可在程序的编译阶段得到初始值0
⑴ 如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0
对的,全局的因为内存会被清0 所以其值就是0
⑵ static int a[3][4];则数组a中各元素()
选D,static变量编译为db 0的汇编语句,从编译开始就是0值。
⑶ 若有说明:int a[3][4];则数组a中各元素是()
不能得到确定的初值。int a[3][4]定义了数组但未赋初值,系统为所定义的数组在内存中开辟了已连续的存储单元,但这些存储单元中没有确定的手液值。
若数组中的数据都是后来获取并且数据过多时,其中的元素个数可表示为count = sizeof(a)/sizeof(a[0]),在执行循环毕漏物语句中条件判断语句时,这样更方便。
若定义为全局变量,若不赋值,则默认所有元素为0;若定义为局部变量,若不赋值,则默认元素值均为随机(垃圾值)。
(3)可在程序的编译阶段得到初始值0扩展阅读
定义数组的知识点:
1、若仅初始化其中部分元素,则其余值均为0;
2、一维数组不能定义为a[],必须给长度,二维数组不能定义为a[][],必须给列赋长度如a[][10];
关于数组的各种表示的含义:
1、一维数组:
&a[0]:数组首元素地址;
&a:数组首元素地址;
&a:整个数组的地址;搜则
2、二维数组:
&a[0][0]:首行首元素的地址;
a[0]:首行首元素;
&a[0]:首行地址;
a:首行地址;
&a:整体数组的地址;
⑷ 若在函数内定义形参数组a:int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。
这是不对的
若没有说明,编译器是不会自己对数组赋值的
⑸ 在C语言中,为什么定义变量的时候总是初始化为0呢该怎么理解。
因为变量是可以变动的,定义一个变量不初始化时,变量会是一个随机数,进行计算了的时候,就会引用那个随机数进行计算,会有误差。
⑹ C语言 数组初始化为0 编译器是如何实现的
在编译时,变量分成两种形式存放,一种叫初始化段,一种叫未初始化段
如果你定义数组没有给出赋值语句中的初始值,该数组将保存在未初始化段;否则放入初始化段
编译器将记录初始化段中的数组起始地址、数据类型、元素个数,初始化数据在常量区的起始地址,数据个数
在程序运行时,系统先申请各段内存棚游,然后针对初始化段进行初始化工作,方法是从常量段中取出初始化数据给你有初始值的变量赋值,假设你程序开设10个单元的数组,如果搏拍没有优化选项,常量段中将保存10个链银销0用来初始化这个数组,如果有优化选项,可以合并相同常量,则仅保存一个0,并用这个0来初始化所有10个数组元素。
⑺ C语言程序中定义的变量要取得一个初始值由什么办法
1)全局变量在声明时,可以为其赋初始值,如int MAXN=999;
没有为全局变量赋初始值的,其初始纯并值默认为0。
2)局部变量在声明时,可以为其赋初始值,渣耐如int MAXN=999;
数如裤春组元素在初始化时,未明确赋值的部分,均有初始值为0。例如:
int a[10]={1,2};
mj a[0]=1,a[1]=2,从a[2]~a[9]均为0。
3)可以在声明后的语句中,为变量赋初始值。如:
int a[10],i;
for(i=0;i<10;i++)
a[i]=i+1;
⑻ 若有说明:int a[3][4];则数组a中各元素( ).
不能得到确定的初值。int a[3][4]定义了数组但未赋初值,系统为所定义的数组在内存中开辟了已连续的存储单元,但这些存储单元中没毕漏物有确定的值。
若数组中的数据都是后来获取并且数据过多时,其中的元素个数可表示为count = sizeof(a)/sizeof(a[0]),在执行循环语句中条件判断语句时,这样搜则更方便。
(8)可在程序的编译阶段得到初始值0扩展阅读:
关于数组的各种表示的含义:
1、一维数组:
&a[0]:数组首元素地址;
&a:数组首元素地址;
&a:整个数组手液的地容址;
2、二维数组:
&a[0][0]:首行首元素的地址;
a[0]:首行首元素;
&a[0]:首行地址;
a:首行地址;
&a:整体数组的地址;
⑼ C语言,没办法,要交作业(3)
A..B..C..D.....................头晕~