C语言中,如何把数组里面的每一项都初始化为同一个值?

发布网友 发布时间:2022-04-23 01:01

我来回答

8个回答

热心网友 时间:2022-04-18 16:11

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:

int a[3];

memset(a, 0, sizeof(a));

printf("%d", a[0]);

printf("%d", a[1]);

printf("%d", a[2]);

3、编译器运行test.cpp文件,此时成功将数组每一项都初始化为0。

热心网友 时间:2022-04-18 17:29

举例说明:
int a[20] = {0};
这样,数组a中的每一个元素都被初始化为0了。

热心网友 时间:2022-04-18 19:04

或许你可以调用用memset()函数试试,例如:memset(arr,0,sizeof(arr));
不过memset这是对每个字节赋值,所以只能是赋0或者-1,别的话只能用循环了追问

这个不行,memset用来设置char型的还是可以,但int型是不行的。你看看吧

追答嗯,整型是不行的,之前说了memset是对每个字节赋值,int型有4个字节,每个字节都赋个1的话,转换成十进制就不是我们想要的了,用在char型数组倒很好用

热心网友 时间:2022-04-18 20:55

#include "Stdio.h"
#include "Conio.h"
int main(void)
{
int i,a[100]={1};
for(i=0;i<=99;i++)
a[i]=1;
for(i=0;i<=99;i++)
{
if(i%5==0)printf("\n") ;
printf("%d\t",a[i]);
}
getch();
return 0;
}

个人感觉就只有用循环才能做。。。不知道别人有好方法吗?

热心网友 时间:2022-04-18 23:03

c++ can do it:

#include <algorithm>
..
int arr[100];
std::fill(arr, arr+100, 1);
..

热心网友 时间:2022-04-19 01:28

对啊 用循环啊 没别的方法 循环也不费劲追问除了循环我也想不出什么好的方法了

追答循环就是好方法

热心网友 时间:2022-04-19 04:09

申请一个struct template{ int i = 1;}; typedef struct template tem_t; struct tem_t arr[100];就搞定了。追问这个不行,首先语法就有错误,不能通过编译,struct template{ int i = 1;};C语言里结构体不是这样写的,结构体里的变量不能赋值。

追答只是提供类似的一个思想,呵呵。
你采纳的那个才是正解,一句memset就搞定了

热心网友 时间:2022-04-19 07:07

这个0是一个特殊情况,这个0是把数组的第一个元素初始化为零,剩余的元素系统会自动用0补齐,如果你把0改为1的话,你调试的时候会发现,只有第一个元素为1,剩下的都是0

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com