c入门 int a[10]={0}是表达这个数组所有值为0还是这个数组没有初始值?

供稿:hz-xin.com     日期:2025-01-15
以下能对一维数组a进行正确初始化的语句是(). A:int a[10]=(0,0,0,0,0) B:int a[10]={}; C:int a[]=(0); D:

A 括号应使用{};B {}里没有赋值;C 应该用{};D 正确,a[0]赋值20,其余的9个赋值为0。
在C中,可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。
如果省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};将创建一个数组,它与前一个实例中所创建的数组是完全相同的。

扩展资料:
数组使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料:
百度百科-数组

方法一、在定义时赋初值
1、静态数组
int[3][3]={0};
2、动态数组
int**a=newint*[n];
for(inti=0;i<n;i++)
a[i]=newint[m](0);
方法二、在定义完后赋值
for(inti=0;i<n;i++)

for(intj=0;j<m;j++)
a[i][j]=0;

方法三、用一个循环吧数组所有元素设置为0:
intarr[100];
inti=0;
for(i=0;i<100;i++)
arr[i]=0;//ThiswillmakeallZERO

方法四、
1、全局变量和静态变量初始化时会自动被设置为0。如果们声明全局变量,那么在运行前会变成全0。
intarr[1024];//Thisisglobal
intmain(void)

//statements

2、对于局部数组简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元素会被自动设置为相应类型的0。这是编译器自动完成的。可以这样写:
intmain(void)

intarr[1024]={0};//ThiswillmakeallZERO
//statements

3、可以用memset函数在程序开始时初始化数组。这条命令这在已经修改了数组之后又想将它重置为全0特别有用。
intarr[1024];
arr[5]=67;
memset(ZEROARRAY,0,1024);//ThiswillreinitializealltoZERO

所有值都是0
C语言规定
当数组被部分初始化时,没有被初始化部分 自动为0
所以
int a[10] = {0};
字面上 只是a[0] = 0; 但其他的 也自动为0

不过
int a[10] = {1};
可不是每个都是1,而是a[0] = 1, 剩余9个 为0

int a[10]={0};是把数组中所有的数据元素都赋值为0

...全部元素的值为0 可以写成:int a[10]={0*10}。答案是(x
int a[10]={0*10};是C非法语句。 int a[10]={0};是合法语句,意思是对10个元素均初始化为0。

用c语言编程实现请输入10个整数,请输出最大值及所在位置(位置从1数起...
int a[10]={0}; int i,max,max_index; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0]; max_index=0; for(i=1;i<10;i++) if(a[i]>max) { max=a[i]; max_index=i; } printf("这10个数中的最大值是%d,位置为%d\\n",max,max_index+1)...

C语言.输入一个m×n的矩阵,计算每行的和。
include "stdio.h"int main(){ int a[10][10];int m,n,tmp,i,j,sum[10]={0};scanf("%d %d",&m,&n);for(i=0;i<m;i++) \/\/输入 for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++) \/\/交换 { tmp=a[m-1][i];a[m-1][i]=a[0][i];a...

C语言中int a[]={0};为啥不对???
对啊,怎么不对?声明int型数组a,并用一个整型数据0初始化,这个数组只有一个元素a[0],其值是0,有什么错?

c语言中int a[10]={}合法么?int a[2][3]={0}呢?
int a[10]={}不合法,int a[2][3]={0}合法

用C++编写数组的查找:用数组实现随机 10 个数整数,输入一个查找数 x...
<stdlib.h> using namespace std;int main(){ int a[10]; for(int i=0;i<10;i++) { a[i] = rand()%500;\/\/0~500之间的随机数; cout<<a[i]<<' '; } cout<<"输入x:"; int x; cin>>x; bool f = false; for(i=0;i<10;i++)...

C\/C++ 初始化一个10X10的二维数组 只有0和1 并且由用户输入的数来决定...
include <stdio.h>int main(){ int a=0; printf("请输入1的个数,不能超过100."); scanf("%d",&a); while(a>100) { printf("请重新输入1的个数,不能超过100."); scanf("%d",&a); } int arr[10][10] = {0};\/\/首先初始化所有的都为0 \/\/根据输入的数a来赋值1 int ...

main() {int a[10]={1,2,3,4,5}; printf("%d\\n",a[6]);}输出的结果是...
运行结果为0 LZ可以在编程软件中,如visual C++,中可得到该结果。因为a[10]是一个数组,从0开始赋值,第0个数,即a[0]为1,第1个数a[1]为2,依次类推,a[4]=5,而a[5]之后到a[9]没有给它赋值,它只好为0,可以理解为1楼所说的初始化,也可理解为相当于为假。不过,要注意,若说...

C语言编程实现输入10个整数存放到数组a的a[1]到a[10]中,并输出其中的最...
include<stdio.h>int main (){ int i = 0,a[10] = {0}; int max = 0,min = 0,sum = 0; float pj = 0;; for(i = 0;i < 10;i ++) scanf("%d",a+i); max = min = a[0]; for(i = 1;i < 10;i ++) if(max < a[i]) max = a...

请说明定义“int a[10]”中的a[10]和语句“a[10]=0”中的a[10]有什么...
定义 int a[10] 中的10表示a数组的长度为10(即:a数组可以存放10个元素)a[10]=0 中的10, 表示a数组中下标为10的元素, 由于下标是从0开始的, 所以是a数组中的第11个元素