C语言中有没有办法一次性给一个数组赋值?

作者&投稿:调琳 (若有异议请与网页底部的电邮联系)
C语言一维数组赋值方法~

  1、初始化时进行赋值。
 int a[2] = {1,2};  char str[20] = "hello world";  2、逐个赋值
  int a[4];  a[0] = 1,a[1]=2, a[2] = 3, a[4]=4;  等同于。
  for (int inx=0; inx!=4; ++inx) a[inx]=inx+1;  3、通过函数复制数据以实现赋值
  比如下面的代码,通过memcpy函数来实现数据的复制,以实现数组赋值的功能。
  #include   #include   #include   int main()  {  int inx;  int a[10] = {1,2,3,4,5,6,7,8,9,10};  int b[5];  //复制4个元素,b[4]将是随机值  memcpy(b, a, 4 * sizeof(int));  for (inx=0; inx!=5; ++inx) printf("%d", b[inx]);  printf("
");  memcpy(b, a+4, 5 * sizeof(int));  for (inx=0; inx!=5; ++inx) printf("%d", b[inx]);  printf("
");  return 0;  }  

方法一、在定义时赋初值
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

如果是char数组,可以使用memset
如果是其它类型数组
那么只能一个个复制
用一个for循环就好
代码并不复杂。


对话中有哪些语言陷阱?我们该如何保护自己不被套路?
有些语言陷阱真的是细思极恐,可能别人跟你交流的过程中,神不知鬼不觉的就把你给套路操控了。大家谨防这四个说话陷阱,遇事多想一想,好好的保护自己。第一个,探底询问式诱导这个非常常见,对方想通过你打听别人的情况或者隐私来获取更多的信息,这个时候请大家谨慎回答。比如领导单独问你,小雪,你...

日语应该怎么学?有没有什么好的学习方法?
日语是一门非常有趣的语言,但对于初学者来说,可能会感到有些困难。下面是一些学习日语的好方法:1. 学习基本语法和词汇学习日语的第一步是掌握基本的语法和词汇。这些包括名词、动词、形容词、副词、代词、介词和连词等。掌握这些基本语法和词汇可以帮助你理解日语的基本结构和表达方式。2. 学习假名和...

语言表达能力很差
在与他人交谈的时候,我们要仔细、认真地听对方在讲什么,不要急于去回答,在听的过程中要思考对方表达的意思是什么,要怎么回应对方。其次,对方的语言有什么特点?哪些说话技巧我们是可以学习的,比如说话斯文、果断、圆滑、有深度等。【点击免费领取1小时口才体验课】2、多与他人交流好的口才是练出来的...

有什么方法可以快速背文言文
背文言文有很多方法,但是最好的一个方法是喜欢文言文.我初中的时候曾经只花了10分钟就背熟了《桃花源记》文言文是汉语中的非常美妙的语言,可以通过古文来表达自己许多难以表达的情感,并且非常含蓄.是非常非常有用的.所以,首先希望你能喜欢.其次,我讲讲方法:第一:理解文中的含义,要想背古文,首先要知道每句话在...

想学会英语日常交流,大家都有什么学习方法和心得?
美剧应当选择生活化的,而不是场面恢弘,但是总出现些你一辈子用不上的词汇,比如《权力游戏》虽然超级火爆,但是主要看点在于剧情,而不是语言。我相信很多人都把《权利游戏》看过一遍了,有人甚至两三遍,然而口语也并没有提升。所以应当选择生活剧,这里推荐几个美剧 1《绝望主妇》2《老友记》学习...

易语言有没有滚动框组件?
1 使用扩展组件中的 滚动框 组件 2 使用基本祖建中的 滚动条\/滑块条 组件(可以用计次循环逐个移动

我下载的字幕文件包含中英双语,有没有办法播放的只显示一种语言
我觉得最好的方法就是通过播放软件禁止播放语言显示,然后再重新在网上下字母,这样就你需要什么语言就用什么语言了...我只想得到这个办法 ,觉得比较简单适用了.希望能帮到你

易语言有没有一种模块防止被抓包,只要易语言软件被抓包软件调用,直接...
木办法,办法就是传输加密

R语言没有car的程序包,怎么办?
两个办法:1. 安装‘minqa’包,在R的命令行界面打入“install.packages(‘minqa’)”.2. 如果上面方法不行,卸载‘car’,并且重新安装。有可能早先安装这个包的方法不对。或者可以选择重新下载R语言软件包下载,下载地址直接搜索 rpackage就可以,或者,进去cran r,_面有packages的下载,

Oppo 恢复出厂设置后选择语言没办法进行下一步., 怎么办
手机关机状态,同时按住电源键和音量减键8秒后进入OPPO恢复模式(工程模式),进入后若需要退出可以参考下面的方法:1、ColorOS版本,点击“立即重启手机”,或者长按电源键关机,再开机即可;2、非ColorOS版本,通过音量键移动光标到关机或重启项,或者直接点击关机重启,点击电源键确定即可;若界面为选择安装...

新芜区15022129641: C语言中有没有办法一次性给一个数组赋值? -
运勇迷清: 如果是char数组,可以使用memset 如果是其它类型数组 那么只能一个个复制 用一个for循环就好 代码并不复杂.

新芜区15022129641: C语言中如何一次给一个数组变量赋值 -
运勇迷清: 即使用scanf也可以很多方法,严谨点就是循环 for(int i=0;i<20;i++) {printf("please input A[%d]:",i);scanf("%d",&A[i]); }要么一次输入一串字符,处理获取到的字符串(比较麻烦我就写伪代码了). char ch[1024]; printf("please input A[0] to A[19],use ';' as a delimiter:"); scanf("%s",ch); 检查输入的是否是数字 检查是否有不正确的分隔符 检查是否输入了20个数 通过下标查找分隔符,获取对应的数字 通过atoi函数把截取出的数字字符串变为整数 over

新芜区15022129641: 我想用c语言scanf函数一次性赋值一个数组,我该上如何操作 -
运勇迷清: 是可以的.抄 例如:bai#include <stdio.h> void main(){ int i,a[10]; for(i=0;i<10;i++) a[i]=i+5;//通过for语句du,对数组的zhi10个数赋值dao for(i=0;i<10;i++) printf("%d ",a[i]); }执行结果:

新芜区15022129641: 怎样用c语言实现连续输入一个数组的全部元素 -
运勇迷清: 可以是使用数组规定输入个数的上限,或者使用文件结束符号EOF,例如while(scanf("%d",&a)!=EOF)

新芜区15022129641: c语言 如何用数组形式一次性输入几个数字 中间有空格 不换行 -
运勇迷清: 给个例子你吧 #include<> int main() { int n[8],i; //定义一个有8个元素的一维数组 for(i=0;i<8;i++) scanf("%d",&n[i]); //一般数组用循环输入,二维就用2个循环输入,不懂可以追问我 printf(""); return 0; }

新芜区15022129641: c语言中能不能用printf函数直接输出数组?如printf("%d",a[3][3]); -
运勇迷清: 限制在C语言中,利用printf直接输出数组是不可以的.但是你的做法是可以的.只是问题出在你数组使用越界了. 解释一下: printf不能直接用来输出数组. 例如:1 2 3 4 5 6 7#include<stdio.h> intmain(){ inta[3]={1,2,3}; inti; for(i=0;i<3;i++) ...

新芜区15022129641: C程序,能不能把数组一次性的付值给另一个数组 -
运勇迷清: C程序,能不能把数组一次性的付值给另一个数组 答案:不能 如果你理解了什么是数组,就不会问这个问题

新芜区15022129641: C语言自定义函数怎么传参,一次性把数组的数据全部传入? -
运勇迷清: 1、因为数组在内存中是一块连续的内存,只要将该数组的首地址传进去,当然就可以访问整个数组了.值得注意的是,由于只传了首地址,函数不知道数组的维数,所以还得把数组的维数传进去,那就可以完全操作该数组了.2、例:有一个函数声明:void fun( int aa[],int size );或者void fun( int *pa,int size ); 以上两种声明都一样. 调用上诉函数时:假设有 int ab[10]; fun( ab,10 )就可以了.

新芜区15022129641: C语言:想实现,在for循环中,计算的结果一次保存到一个数组中. -
运勇迷清: 你的程序 标明一下解析啊 而且还有很多错误.如果单纯要按照你的意思;可以写个样式给你参考. for(k=k0,q=0;k<k1;k++,q++) {if() {.....}else if(){....}else if(){....}else{....}U[q]=k;//这个k值如果中间计算会改变,那么用另一个变量存起来.如kc=k; u[q]=kc;V[q]=S//同上做法//这样 可以保证 U[] 和V[]同时存数据 从U[0]和v[0]开始 }

新芜区15022129641: 在c语言中怎样将一个数组中的全部内容赋给另一个数组,有没有一步就可以完成,不用for语句. -
运勇迷清: 让我来告诉你答案!很明显你没有分清楚数组和字符串,对于字符串来说是可以的,因为有strcpy()和memcpy()这类函数调用可以直接复制,但是数组是不行的,一般都得用到一个循环.函数返回数组只要返回只要返回首地址就可以了,比如你要返回的是inta[10]的数组,那么你定义函数的时候可以这样写:int*afunc(){………………returna},即只要返回首地址,切忌a[10]不能再函数体中定义否则无意义.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网