c语言数组赋值设置了一个数组如果再设置一个变量再赋值几个数组元素(不是全部元素都赋值),然后把全部数组元素

可以给一个结构体数组里面的数组的每一个元素赋值吗_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:467,136贴子:
可以给一个结构体数组里面的数组的每一个元素赋值吗收藏
要从键盘输入的
比如这种写法对不对的
player[0].score[0] = 10;
c语言,达内上市公司出品,0元试学,不就业免费重修;c语言,先就业后付款,80天从0到精通,入职名企!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或C语言中怎么把一维数组赋给另外一个一维数组_百度知道如何将一个数组的元素赋值给另一个数组
如何将一个数组中的元素插入另一个数组:本章节直接给出一段将一个数组中元素插入另一个数组中的代码实例,直接套用就可以了。代码如下: &
var first = ['a','b','c']; var second = ['1','2','3']; var index = 1
20:42&&&[]
;&join&(arr2,&,&),&,&)
相关知识:单个数组元素可以像简单变量一样从一个数组复制到另一个数组。想要将一个数组赋值个另外一个数组,必须使用For语句将一个数组的元素逐个赋值给另一个数组的元素。InputBox()为输入函数
-15:03&&&[]
;&join&(arr2,&,&),&,&)
相关知识:单个数组元素可以像简单变量一样从一个数组复制到另一个数组。想要将一个数组赋值个另外一个数组,必须使用For语句将一个数组的元素逐个赋值给另一个数组的元素。InputBox()为输入函数
-15:03&&&[]
比如,char*&string1参数是一个数组指针,要赋值给函数中的tem_str[]这个数组。如下做法错在哪里?应该如何操作?谢谢!
void&Replace::print_string_replace(const&char*&string1
-15:29&&&[]
;As&String()
在这之后如何把数组&S&的&&B&&&C&&赋值给&S1,不用循环的情况下!
起因是我的程序中有一段需要动态的处理一个大动态数组的一部分,这个数组非常大,不分段的话严重
-16:34&&&[]
本帖最后由 fanysans 于
17:45:32 编辑
C#中如何将2个数组中不同元素提取到另一个数组?
int&A[10]={1,2,3,4,5,6,7,8,9,10};
int&B[10]={2,3,4,5,6,6,19,20,21,21};&&
怎么提取A,B中不同的元素呢&&求代码
回复讨论(解决方案)
打错了&C#中如何将2个数组中不同元素提取到另一个数组?
先想到的就是一个一个查找,如果是已经排好序了,二分查找会快些
int[]&result&=&a.Except(b).Union(b.Except(a)).ToArray();
&int[]&A=new&int[]{1,2,3,4,5,6,7,8,9,10}; int[]&B=new&int[] &&&&{2,3,4,5,6,6,19,20,21,21}; int[]&C=A.Except(B).Union(B.Except(A)).ToArray(); //int[]&D&=&A.Union(B).Except(A.Intersect(B)).ToArray();
var&A&=&new&int[]&{&1,&2,&3,&4,&5,&6,&7,&8,&9,&10&}; var&B&=&new&int[]&{&2,&3,&4,&5,&6,&6,&19,&20,&21,&21&}; var&x&=&new&List&int&(); foreach&(var&a&in&A) { &&&&if&(!x.Contains(a)) &&&&&&&&x.Add(a); } foreach&(var&b&in&B) { &&&&if&(!x.Contains(b)) &&&&&&&&x.Add(b); } var&C&=&x.ToArray();
编程其实很简单,关键是你的脑袋要能把大白话也说的清晰,这就需要你的语文课成绩不是很糟糕。
sorry!&少写了一行代码: var&A&=&new&int[]&{&1,&2,&3,&4,&5,&6,&7,&8,&9,&10&}; var&B&=&new&int[]&{&2,&3,&4,&5,&6,&6,&19,&20,&21,&21&}; var&x&=&new&List&int&(); foreach&(var&a&in&A) { &&&&if&(!x.Contains(a)) &&&&&&&&x.Add(a); } foreach&(var&b&in&B) { &&&&if&(!x.Contains(b)) &&&&&&&&x.Add(b); &&&&else &&&&&&&&x.Remove(b); } var&C&=&x.ToArray();
唉,晕死了,刚看见,你的&B&数组里自己还有重复数据?
那么需要写成&foreach&(var&a&in&A.Distinct())&&和&foreach&(var&b&in&B.Distinct())&之类的哦。
呵呵忙死了,还得注销然后重新登录,才能穿上马甲。
var&A&=&new&int[]&{&1,&2,&3,&4,&5,&6,&7,&8,&9,&10&}; var&B&=&new&int[]&{&2,&3,&4,&5,&6,&6,&19,&20,&21,&21&}; var&x&=&new&List&int&(A.Distinct()); foreach&(var&b&in&B.Distinct()) { &&&&if&(!x.Contains(b)) &&&&&&&&x.Add(b); &&&&else &&&&&&&&x.Remove(b); } var&C&=&x.ToArray();
不写了,再写就变笨了。
呵呵忙死了,还得注销然后重新登录,才能穿上马甲。
var&A&=&new&int[]&{&1,&2,&3,&4,&5,&6,&7,&8,&9,&10&}; var&B&=&new&int[]&{&2,&3,&4,&5,&6,&6,&19,&20,&21,&21&}; var&x&=&new&List&int&(A.Distinct()); foreach&(var&b&in&B.Distinct()) { &&&&if&(!x.Contains(b)) &&&&&&&&x.Add(b); &&&&else &&&&&&&&x.Remove(b); } var&C&=&x.ToArray();
不写了,再写就变笨了。
var&x&=&A.Except(B);
var&x1&=&B.Except(A);
var&C&=&x.Concat(x1);
Try&difference.
如果想要高效率解决这个问题,可以用HashSet,HashSet&int&.ExceptWith方法可以直接高效率的提取不同的元素,
虽然调用HashSet&int&.ExceptWith方法之前需要把数组元素装入HashSet中,这样程序没有上面几位高手那么简洁,但速度绝对更快,在元素非常多的时候可以考虑这个方法,
谢谢各位前辈的指导,我是一个新手。思路现在有点清晰了。。
-09:34&&&[]
比如&&dim&A()&as&integer,&B()&as&integer
当A有了值后,怎么才能把A直接赋给B呢&&,我不想一个一个的循环赋值
另外还想问一下是否可以把一个记录集直接赋给另一个记录集?&
dim&RS1&AS&new&adodb.recordset
dim&RS2&AS&new&adodb.recordset
可以直接&&rs1=rs2吗?
回复讨论(解决方案)
数组应该可以用复制内存的方法.
而类(对象)应该不可以.
类(对象)名保存的好象是&指针之类的东西.&指向某个实类或对象.
直接赋值无用,在操作的时候,二个类或对象数据都会改变.
不行,你这只是把rs1指向rs2
*****************************************************************************
欢迎使用CSDN论坛专用阅读器&:&CSDN&Reader(附全部源代码)&
&数组应该可以用复制内存的方法.&&
----请教具体语句怎么写啊?
b是动态数组直接:
set&rs2=rs1
Dim&a(2)&As&Integer,&b(2)&As&Integer
&&&a(0)&=&1
&&&a(1)&=&2
&&&a(2)&=&3
出错啊,提示不能给数组赋值
补充一下,set&rs2=rs1这样,注意对rs1的操作可能会影响到rs2...
Dim&a(2)&As&Integer,&b(2)&As&Integer
&&a(0)&=&1
&&a(1)&=&2
&&a(2)&=&3
出错啊,提示不能给数组赋值
Dim&a(2)&As&Integer,&b()&As&Integer
&&a(0)&=&1
&&a(1)&=&2
&&a(2)&=&3
看清上面有回复,b是动态数组!
for&i=0&to&2
&b(i)=a(i)
Private&Declare&Sub&CopyMemory&Lib&&kernel32&&Alias&&RtlMoveMemory&&(dest&As&Any,&source&As&Any,&ByVal&numBytes&As&Long) Private&Sub&Command1_Click() &&Dim&a(2)&As&Integer,&b(2)&As&Integer &&a(0)&=&1 &&a(1)&=&2 &&a(2)&=&3 &&CopyMemory&ByVal&VarPtr(b(0)),&ByVal&VarPtr(a(0)),&6 && &&For&i&=&0&To&2 &&&&MsgBox&b(i) &&Next End&Sub
'可以将数组赋给一个包含数组的Variant Private&Sub&Form_Load() Dim&a(2)&As&Integer Dim&b&As&Variant Dim&i &&a(0)&=&1 &&a(1)&=&2 &&a(2)&=&3 &&b&=&a&'b是一个包含数组的Variant &&For&i&=&0&To&UBound(b) &&MsgBox&b(i) &&Next && End&Sub
CopyMemory是高效的方法,但对于不大的数组b=a更合适...
对于记录集,你还可以用clone方法复制副本:
set&rs2=rs.clone
然后执行:
rs1.requery
这样rs1和rs2就脱离关联了...
CopyMemory是高效的方法,但对于不大的数组b=a更合适...
对于记录集,你还可以用clone方法复制副本:
set&rs2=rs.clone
然后执行:
rs1.requery
这样rs1和rs2就脱离关联了...
就是rs.clone
比如&&dim&A()&as&integer,&B()&as&integer
当A有了值后,怎么才能把A直接赋给B呢&&,我不想一个一个的循环赋值
另外还想问一下是否可以把一个记录集直接赋给另一个记录集?
dim&RS1&AS&new&adodb.recordset
dim&RS2&AS&new&adodb.recordset
可以直接&&rs1=rs2吗?
set&rs1&=&rs2
数组可以直接赋值,不过目标数组必须是动态数组:
/blog/article.asp?id=262
数据集可以用clone方法
Private&Declare&Sub&CopyMemory&Lib&&kernel32&&Alias&&RtlMoveMemory&&(Destination&As&Any,&Source&As&Any,&ByVal&Length&As&Long)
Dim&bytes&As&Long
Dim&intSrc(1&To&6000000)&As&Integer
Dim&intDest(1&To&6000000)&As&Integer
bytes&=&(UBound(intSrc)&-&LBound(intSrc)&+&1)&*&Len(intSrc(LBound(intSrc)))
CopyMemory&intDest(LBound(intDest)),&intSrc(LBound(intSrc)),&bytes
对于integer型的数组,用循环是最好的方法&为什么不想用呢?
用clone方法
数组应该可以用复制内存的方法.&
而类(对象)应该不可以.&
类(对象)名保存的好象是&指针之类的东西.&指向某个实类或对象.&
直接赋值无用,在操作的时候,二个类或对象数据都会改变.
这个要来学习一下,继续等更有效方法
引用&6&楼&jiangsu19747&的回复:
Dim&a(2)&As&Integer,&b(2)&As&Integer
&&a(0)&=&1
&&a(1)&=&2
&&a(2)&=&3
出错啊,提示不能给数组赋值
Dim&a(2)&As&Integer,&b()&As&Integer
&&a(0)&=&1
&&a(1)&=&2
&&a(2)&=&3
看清上面有回复,b是动态数组!
经测试,这种方法可用,以后我的程序可以借用这种方法了,非常感谢
Private&Declare&Sub&CopyMemory&Lib&&kernel32&&Alias&&RtlMoveMemory&&(Destination&As&Any,&Source&As&Any,&ByVal&Length&As&Long)
Dim&bytes&As&Long
Dim&intSrc(1&To&6000000)&As&Integer
Dim&intDest(1&To&6000000)&As&Integer
bytes&=&(UBound(intSrc)&-&LBound(intSrc)&+&1)&*&Len(intSrc(LBound(intSrc)))
CopyMemory&intDest(LBound(intDest)),&intSrc(LBound(intSrc)),&bytes
学会了,谢谢
使用CopyMemory函数可以完成数组的赋值,
对动态数组可以直接整体赋值。
thaknyou&somuch
只要获取数组的地址就可以了.
使用CopyMemory函数,将指向修改一下就可以。
数组是不可以赋值的,动态数组有是另外一回事,在c++里叫向量,已脱离了你的原意,如果非得到一的副本,同意上面的用&copymemery,但小数组不宜用之,消耗大
谢谢大家的回复。这么多热心人,我还担心现在没什么人用VB了呢。前天另一公司老板跟我说事情,问我用什么编程,我知他们用C#,我说我们用VB呢,然后故意添了一句,WINFORM程序VB比C#快,生怕人家看不起。
WINFORM程序VB比C#快???
LZ试过?》
呵呵,没试过,看网上一篇贴子里这么说的
关注一下!
WINFORM程序VB比C#快???
LZ试过?》
VB比Java快
-19:11&&&[]
float&OUT_ARI_TEM_AM[30];&
float&OUT_AIR_HUM_AM[30];&
case&0x0D:&
//int8_t&j;
c=conversion(i);
for(j=29;j&=0;j--)
OUT_ARI_TEM_AM[j+1]=OUT_ARI_TEM_AM[j];
OUT_ARI_TEM_AM[0]=c;
case&0x0E:&
//int8_t&j;
c=conversion(i);
for(j=29;j&=0;j--)
OUT_AIR_HUM_AM[j+1]=OUT_AIR_HUM_AM[j];
OUT_AIR_HUM_AM[0]=c;
这个switch,先是调到了case&0x0E后OUT_AIR_HUM_AM[0]被赋了一个值,再调到case&0x0D时,执行OUT_ARI_TEM_AM[j+1]=OUT_ARI_TEM_AM[j];时OUT_AIR_HUM_AM[0]的值也同时被改变,这是为什么,要怎么解决呢,谢谢
回复讨论(解决方案)
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了
不好意思,我并没有+1
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
编译器缺少越位&吹哨!!!
for(j=29;j&=0;j--)
OUT_ARI_TEM_AM[j+1]=OUT_ARI_TEM_AM[j];
j=29的时候&j+1就是30
OUT_ARI_TEM_AM[30]&已经越界。对其操作其结果是不可预料的。
至于对30下标赋值改变了另外一个数组。只不是是刚好另外一个数组的内存在30这里。
不知道你知道for执行的顺序不。明明+1了。
for(1;2;4)
执行顺序&1&2&3&4.这么循环下去,直到退出
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
j为29时j+1是30越界了
j为29时j+1是30越界了
j为29时j+1是30越界了 ++
11:41&&&[]
用JAVA,怎么写呢?
回复讨论(解决方案)
土点就是双重循环了,逐个对比检查。
偷鸡点,就是两个数组都先存入Set中,然后用:第一个.removeAll(第二个)。
ArrayList&String&&diffSet(String[]&nbsp
-19:02&&&[]
=0;k2&str[0].k2++){
str2[k][k2]=str[k][k2];
这段代码有木有方法能给简单到一个语句来解决呢?
回复讨论(解决方案)
System.arraycopy是可以变成一句话但是这样的话你得到的二维数组的二维的length
-17:15&&&[]
题目是这样的
编写一个模板函数changeLength1D,它将一个一维数组的长度从oldLength变成newLength。函数首先分配一个新的、长度为newLength的数组,然后把原数组的前min{lodLength,newLength}个元素复制到新数组中,最后释放原数组所占用的空间
16:17&&&[]
;b.ToArray
回三楼:&&假如我要想把c()存到b()的后3个位置,代码怎么实现?谢谢了!
&&&&Dim&b()&As&Byte&=&{1,&2,&3
-11:32&&&[]怎么让数组元素全部初始化为一个指定值
[问题点数:40分,结帖人coolboycool]
怎么让数组元素全部初始化为一个指定值
[问题点数:40分,结帖人coolboycool]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年1月 扩充话题大版内专家分月排行榜第二
2013年4月 Linux/Unix社区大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第三2007年8月 C/C++大版内专家分月排行榜第三2006年11月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年6月 Linux/Unix社区大版内专家分月排行榜第二2013年5月 Linux/Unix社区大版内专家分月排行榜第二2013年3月 Linux/Unix社区大版内专家分月排行榜第二2013年1月 Linux/Unix社区大版内专家分月排行榜第二2012年12月 Linux/Unix社区大版内专家分月排行榜第二2012年8月 Linux/Unix社区大版内专家分月排行榜第二2011年12月 Linux/Unix社区大版内专家分月排行榜第二2011年10月 C/C++大版内专家分月排行榜第二2011年10月 Linux/Unix社区大版内专家分月排行榜第二
2012年6月 C/C++大版内专家分月排行榜第三2012年6月 PHP大版内专家分月排行榜第三2012年5月 C/C++大版内专家分月排行榜第三2012年3月 Linux/Unix社区大版内专家分月排行榜第三2012年2月 Linux/Unix社区大版内专家分月排行榜第三2011年11月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。C语言 数组的元素连接后赋值给一个变量,这个变量的值不是数组也不是字符,而是二进制数或者十六进制数:_百度知道

我要回帖

更多关于 c语言字符串数组赋值 的文章

 

随机推荐