mlsb.net
当前位置:首页 >> C语言中一维数组初值表能否为空? >>

C语言中一维数组初值表能否为空?

2种方法: 1.静态变量(全局变量、静态局部变量)即使没有初始化列表,也会自动全部初始化填充0。 2.对于局部自动变量,只要初始化列表存在,即使没有在列表中的部分也会被初始化填充0。所以只要使初始化列表全为零即可。例如LS所说的int a[10] ...

比较简单的有两种 方法。 一种是 在定义的时候直接赋值为0, int a[10]={0}; 另一种 是 memset 在头文件string.h里 int a[10]; memset(a,0,sizeof(a));

不管是整型数组,还是字符型或浮点型数据,而且没有初始化的话,定义的数据会获得系统给改数据分配的地址上原有的数据。如果输出,会显示一些稀奇古怪的数据。 如果初始化了,当然就没问题了。 你可以自己试试。

对于局部性质的数组: int a[100];这种写法因为没有初始化,所以100元素都是机器垃圾值; int a[100]={0,2,3};这种写法前3个元素被分别初始化为0、2、3,其余的都置为0; int a[100]={0};这种写法将100个元素都初始化为0。 对于全局或修饰为静态...

二维数组第一维界限可以省略,具体由第二维界限确定。 对于a[][3]={1,2,3},第二维界限是3,数组元素共3个,因此第一维界限为1。 对于d[3][2]={{1,2},{34}},明确给出了第一维界限、第二维界限,后面各行数组元素部分赋值,部分未赋值。赋值的是...

数组赋值可以通过以下几种方法: 1、定义的时候直接赋初值(用{}); 2、用循环语句依次给数组各元素赋值; 3、将数组放在一个结构体里面,通过结构体的引用给数组整体赋值;(数组本身不能直接整体赋值)

不对。 c语言声明数组时,只分配相应的内存空间和地址,并不赋初值,各元素的值是乱七八糟的数字。所以: int names[5]; 与 int names[5]={0}; 是完全不等价的。

把变量声明为全局量即可。(变量声明在 main() 以前即可)。全局量会自动初始化。 另外,声明时带初始化,也可以免去用输入语句赋初值,例如: int a[]= {12,34,56,78,90}; char s[]="abcdxyz"; float b[2][3]={11,12,13,21,22,23};

#include "stdio.h"#include "stdlib.h"int main(){ int a[]={50,8,69,53,76}; for(int i=0;a[i]!='\0';i++) printf("%d,",a[i]); printf("\n"); return 0;}

比如前有定义语句int a[3]={0};那么整个数组a的3个值均为0。 但如果后面有赋值语句如 a[3]=0 则仅能将第3个数组元素的值赋为0,而非整个数组。

网站首页 | 网站地图
All rights reserved Powered by www.mlsb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com