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

假如 int arr[100];我想把arr数组里的100项都初始化为1.怎么做?难道只能用循环来做,循环100次进行赋值?有没有更好的方法?

需要准备的材料分别有:电脑、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。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-14
举例说明:
int a[20] = {0};
这样,数组a中的每一个元素都被初始化为0了。本回答被网友采纳
第2个回答  推荐于2017-10-03
或许你可以调用用memset()函数试试,例如:memset(arr,0,sizeof(arr));
不过memset这是对每个字节赋值,所以只能是赋0或者-1,别的话只能用循环了追问

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

追答

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

本回答被提问者采纳
第3个回答  2012-11-23
申请一个struct template{ int i = 1;}; typedef struct template tem_t; struct tem_t arr[100];就搞定了。追问

这个不行,首先语法就有错误,不能通过编译,struct template{ int i = 1;};C语言里结构体不是这样写的,结构体里的变量不能赋值。

追答

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

第4个回答  2012-11-23
#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;
}

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

c语言,给一个不知道元素个数的数组的所有元素赋相同的值
可以利用系统函数memset(数组名,初值,sizeof(数组名));来整体赋相同的初值。但是要注意:必须在程序开头引入头文件#include<memory.h>才可以使用系统中定义的memset函数。如同要使用sin()等数学函数时必须引入头文件#include<cmath>一样。

c语言数组的初始化表示方法
一、静态初始化 在C语言中,可以在声明数组的同时进行初始化,称为静态初始化。例如:c int array[5] = {1, 2, 3, 4, 5};这里声明了一个整型数组`array`,并初始化为五个值。数组的大小由声明的数值决定,初始化列表中的值按顺序分配给数组的每一个元素。二、部分初始化 如果知道数组的部分...

C语言中定义数组时对其全部初始化为1的问题
这种写法不可以,要写成 int a[10] = {1,1,1,1,1,1,1,1,1,1};你的那种只是a[0]=1;而a[1]~a[9]都是默认值哦!

C语言里怎么把数组里的所有的元素取相等的值
for(int i=0;i<N;i++)\/\/N是数组大小 { a[i]=b;\/\/b是那个值 }

C语言怎么使用循环给所以的数组成员赋值同一个数。
string.h中的memset()void * memset(void * s, int ch, size_t n)s为首地址指针,ch为填充数,n为字节数 2比如填充int a[20];memset(a, 0, sizeof(int) * sizeof(a))循环就是 int a[20], i;for(i = 0; i < sizeof(a); i++)a[i] = 0;这里需要注意到是如果数组a作为...

C语言,如何将一个数组里的所有元素按顺序合并成一个字符串,求例程
\/\/=== \/\/假定数组SendByte[] 每个元素的值 不大于 0xff, 那么1个int 可用 1 字节 传送:for (i=0;i<5;i++) sb[i]= (unsigned char) SendByte[i];sb[5]='\\0';for (i=0;i<5;i++) printf("%x ",sb[i]);printf("\\n");return 0;} ...

【C语言】初始化数组,C语言中初始化特定列表和元素!
数组的其他 4 个元素会被初始化为 0,按照本例情况,为{0,""}。可以利用字符串字面量来初始化数组 char、wchar_t、char16_t 或 char32_t。借助于 C99 新增的元素指示符(element designator),可以把初始化器关联到特定的元素。当需要把特定的元素与初始化器关联时,将其索引值放在方括号内。

c语言中怎么把一维数组初始化为全零啊,不用循环
1.int arr[10]={0};如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。2.int arr[31]={};3.用memset函数在程序开始时初始化数组。比如:int arr[1024];memset(arr, 0, 1024); \/\/...

c语言中怎么把一维数组初始化为全零啊,不用循环
在C语言中,有多种方法可以快速将一维数组初始化为全零,无需使用循环。以下是三种常见的方法:1. 直接使用花括号初始化:首先,你可以直接在定义数组时指定所有元素为0,如:int arr[10]={0};。这种方法适用于数组的长度已知且希望所有元素均为0的情况。如果仅初始化部分元素,编译器会自动为剩余...

C语言字符数组如何初始化?
C语言允许用字符串的方式对数组作初始化赋值。例如:staticcharc[]={'c','','p','r','o','g','r','a','m'};可写为:staticcharc[]={"Cprogram"};或去掉{}写为:staticcharc[]="Cprogram";当对全体元素赋初值时也可以省去长度说明。例如:staticcharc[]={`c`,``,`p`,`r`...

相似回答