数组定义时初始化为零(如何将数组初始化为0)
本文目录
- 如何将数组初始化为0
如何将数组初始化为0 - C++ 二维数组如何初始化为0
- C++中,定义一个整型数组后,各数组元素会自动初始化为0 对不对,为什么
- 用java定义一个包含5个元素的int数组,并且初始化都为0,从键盘接收五个整
- C语言 数组初始化为0 编译器是如何实现的
- vc++中将数组怎么初始化为0
- C语言如何定义0数组
如何将数组初始化为0
如果是初始化,只要定义第一个元素为0,后面就全为0了,如
int a = {0};
如果是在定义以后想全部赋为0,用memset()函数是比较快的。
如:
int a;
memset(a, 0, sizeof(int)*SIZE);
如何将数组初始化为0
比较简单的有两种 方法。 一种是 在定义的时候直接赋值为0, int a={0};
另一种 是
memset 在头文件string.h里
int a;
memset(a,0,sizeof(a));
C++ 二维数组如何初始化为0
例如
int a;
a=’0’
这样写第一个元素初始化为0,其余也会初始化为0
还有一种就是
memset(要初始化的数组,初始化的值,要初始化的长度(字节));
C++中,定义一个整型数组后,各数组元素会自动初始化为0 对不对,为什么
不对,只要没初始化,数组里面的就是内存里面残留的数据(所以看起来是随机数,因为我们不大可能确定这个数组所用的位置之前放的是什么东西),所以初始化是很重要的。
用java定义一个包含5个元素的int数组,并且初始化都为0,从键盘接收五个整
参考代码
import java.util.Arrays;
import java.util.Scanner;
public class ArryDemo {
public static void main(String args) {
//一:初始化数组
int;//定义数组,并初始化,默认值就是0
//int moren = 0;//,这里可以修改为1,2等其他数
//for (int i = 0; i 《 ary.length; i++) {
//ary = moren;//全部赋为moren
//}
System.out.println("初始化的数组:"+Arrays.toString(ary));
//二:输入数组的元素
Scanner sc = new Scanner(System.in);
for (int i = 0; i 《 ary.length; i++) {
System.out.println("请输入数组的第" + (i + 1) + "个元素");
ary = Integer.parseInt(sc.nextLine().trim());//读取键盘输入的数据,并转化为数字
}
System.out.println("赋值完的数组"+Arrays.toString(ary));
//三:颠倒数组的顺序
for (int begin = 0, end = ary.length - 1; begin 《 end; begin++, end--) {
int temp = ary;
ary;
ary = temp;
}
System.out.println("倒序后的数组"+Arrays.toString(ary));
sc.close();
}
}
测试
初始化的数组:
请输入数组的第1个元素
2
请输入数组的第2个元素
3
请输入数组的第3个元素
5
请输入数组的第4个元素
6
请输入数组的第5个元素
8
赋值完的数组
倒序后的数组
C语言 数组初始化为0 编译器是如何实现的
在编译时,变量分成两种形式存放,一种叫初始化段,一种叫未初始化段
如果你定义数组没有给出赋值语句中的初始值,该数组将保存在未初始化段;否则放入初始化段
编译器将记录初始化段中的数组起始地址、数据类型、元素个数,初始化数据在常量区的起始地址,数据个数
在程序运行时,系统先申请各段内存,然后针对初始化段进行初始化工作,方法是从常量段中取出初始化数据给你有初始值的变量赋值,假设你程序开设10个单元的数组,如果没有优化选项,常量段中将保存10个0用来初始化这个数组,如果有优化选项,可以合并相同常量,则仅保存一个0,并用这个0来初始化所有10个数组元素。
vc++中将数组怎么初始化为0
int a={0};即可将a数组中的数据全部初始化为0;
如果是二维数组intb={{1,2,3},{0}};就是将数组b中的第1行(行数从0开始)的所有元素初始化为0.
在定义数组的后面加上={0}就可以实现将数组初始化为0.
也可以用循环迭代数组中的每个元素进行初始化赋值,例
for(int i=0;i《N;i++)
{
a=0;
}
两种方式均可,第一种更加简便,第二种更加灵活,可以对不同元素赋值不同的值。
C语言如何定义0数组
如果要定义0长度的数组,在C语言是不可以实现的,因为C语言不支持长度为0的数组,事实上,这也是没意义的。
要把定义的数组初始值设置为0,针对数组的类型,可以区分操作:
1 局部变量。对于局部变量可以在定义时进行初始化。
type name = {0};
从表现上看,是把第一个元素赋值为0,但是C语言约定,对于显式的部分初始化的情况,没有显式初始化部分的值自动赋值为0,所以以上写法,可以做到将整个数组初始化为0。
2 全局变量或静态局部变量。
对于这两种变量, 同样可以使用1的方式,不过更简洁的写法是不做初始化,如
type name;
或
static type name;
因为C语言规定,全局变量或静态局部变量没有显式初始化时,默认初始化值为0。所以不做初始化时与初始化为0的效果相同,而且代码更简洁,执行也更高效。