数组赋值给数组,C语言中怎么把一维数组赋给另外一个一维数组
数组赋值给数组,C语言中怎么把一维数组赋给另外一个一维数组详细介绍
本文目录一览: 如何将一个数组赋值给另外一个数组
有两种方法可以实现。 1 逐个赋值法。 采用循环,逐项赋值。 以整型为例,int a[10], b[10]; 要把a的值赋值给b,可以写作 int i; for(i = 0; i < 10; i ++) b[i] = a[i]; 2 整体复制法。 利用C语言库函数memcpy可以整体复制。memcpy声明与string
如何将一个数组赋值给另外一个数组
(1)字符数组相当于字符串,可以用标准函数strcpy()直接进行字符串复制。
比如 把c【】复制到a中就【】可以这样用:strcpy(a,c);
这个函数包含在头文件
中.
(2)单个复制
for(int i= 0; i < 2; ++i)
{
b[i] = a[i];
}
int a[4] = {1,2,3,4}, b[4];
1、 通过数组遍历,逐个赋值。
定义循环变量int i;
for(i = 0; i < 4; i ++)
b[i] = a[i];
该程序功能为遍历数组a,逐个赋值到数组b对应元素中。
2、 借助内存复制函数memcpy,整体赋值。
void *memcpy(void *dst, void *src, size_t size);
这个函数的功能为将src上,大小为size字节的数据赋值到dst上。
调用该函数时需要引用头文件cstring,即
#include
赋值数组的代码为
memcpy(b,a,sizeof(a));
怎样给数组赋值?
1、直接初始化:int arr[3]={1,2,3};
2、遍历访问初始化:
for(i = 0;i< 3;i++)
//直接读入,或者用别的数组,以及别的(i+1)等。
3、内存操作函数。
memset(arr,3,abs);//abs为另一个已知的数组。
4、字符串赋值函数,仅限于char型数组。
strcpy(arr,abs) ;abs为一字符串或者char型数组。
可能还有别的。
第一种就是定义的时候给值,String a[]=new a[1,2,3];第二种就是用个循环
for (int i=0;i<10;i++){
a[i]=i+"a";
}
这样你懂了没,看懂了给下最佳,没看懂HI上问我.
给数组赋初值的方法:1、直接初始化:int arr[3]={1,2,3};2、遍历访问初始化:for(i = 0;i< 3;i++) arr[i]=i;3、内存操作函数:memset(arr,3,abs);//abs为另一个已知的数组。
4、字符串赋值函数,仅限于char型数组:strcpy(arr,abs) ;abs为一字符串或者char型数组。
nt t[100]呵呵,也许这样理解会比较容易:“是要给t0,t1,t2,t3,t4....t100赋值”如果想每一个都赋值,这样即可:int t[100]for(int a=0;a<100;a++){cin>>t[a];}
用什么方法将一个数组赋值给另一个数组
第一种用for循环:
1
2
3
4
int[] x={1,2};
int[] y=new int[2];
for(int i=0;i
<x.length;i++){
y[i]=x[i];
第二种用java提供的arraycopy
1
2
3
int[] x={1,2};
int[] y=new int[2];
System.arraycopy(x, 0, y, 0, x.length);//变量依次是(原数组,从原数组第几位开始,目标数组,从第几位开始粘贴,复制长度)
</x.length;i++){
C语言中怎么把一维数组赋给另外一个一维数组
不可以,之所以不可以是因为数组名是个常量,它的值是数组首元素地址,即不能将其它值付给这个常量。
可以采用循环的方法逐个复制,或者采用另一个同类型的指针(相对于数组名,指针是变量)指向要复制的数组,之后就可以采用这个指针访问之前的那个数组。
扩展资料:
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。
参考资料来源:百度百科-一维数组
不可以,之所以不可以是因为数组名是个常量,它的值是数组首元素地址,即不能将其它值付给这个常量。
可以采用循环的方法逐个复制,或者采用另一个同类型的指针(相对于数组名,指针是变量)指向要复制的数组,之后就可以采用这个指针访问之前的那个数组。
扩展资料
C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。
相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)
合理使用优先级可以极大简化表达式。
有两种方法可以实现。
1 逐个赋值法。
采用循环,逐项赋值。
以整型为例,int a[10], b[10];
要把a的值赋值给b,可以写作
int i;
for(i = 0; i < 10; i ++)
b[i] = a[i];
2 整体复制法。
利用C语言库函数memcpy可以整体复制。memcpy声明与string.h中,形式为
void * memcpy(void *dst, void *src, int length);
其功能为将src地址上长度为length字节的数据,复制到dst上。
于是上一个方法中的例子,可以用
memcpy(b,a,sizeof(a));
来实现相同效果。
代码量较前一个方法更少,同时效率也更高。
void main()
{
int a[10]={1,2,3,4,5....};
int b[10];int i;
for(i=0;a[i]!=0;i++)
b[i]=a[i];
}
如果a[10]=b[10] 那么仅仅赋了b{}数组的第11个元素给a[]数组的第十一个元素,没法一次性全部赋给.楼下那个方法也不错.
不可以a【10】指的是a数组的第11个元素,同样b也一样,你这样写只能够把b的第11个元素值赋给a的第十一个元素
可以采用两种方式:
1、按元素赋值:
遍历一维数组,并将每个元素赋值到二维数组的对应元素上。
或者遍历二维数组,将每个元素赋值为一维数组对应值上。
优点为操作灵活,可以按照需要任意赋值。
2、当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。
如一维数组为a,二维数组为b,基础类型为TYPE,需赋值元素个数为n,可以调用
memcpy(b,a,sizeof(TYPE)*n);
该方法有点为操作简单,执行效率高。
不过所需满足的前提条件多。在满足上述所有条件时,用memcpy的方式更为简单。
扩展资料:
C语言中,赋值运算的操作是有方向的,即将右侧表达式的值(也称为右值)赋值左侧的变量,只能是标识一个特定存储单元的变量名。
由于变量名只能出现在赋值运算符的左边,因此它也被称为左值;由于常量只能出现在赋值运算符的右边,因此它也被称为右值。左值可以用作右值,但右值不能用作左值。
结构体的相关操作规则:
1、可以引用一个结构体变量中的一个成员的值:
例如,student1.num表示结构体变量student1中的成员的值,student1.num的值为10001。引用结构体变量中成员的一般方式为:结构体变量名.成员名。例如可以这样对变量的成员赋值:student1.num=10010;
2、不能将一个结构体变量作为一个整体进行输入和输出:
例如,已定义student1和student2为结构体变量,并且它们已有值。不能企图这样输出结构体变量中的各成员的值:cin>>student1;只能对结构体变量中的各个成员分别进行输入和输出。
怎么把一个数组的全部内容赋给另一个数组
用memcpy函数拷贝
可以使用循环,顺序产生下标,然后按照下标进行对应赋值,比如:
int a[3]={ 1,2,3 },b[3],i; float c[3]; for ( i=0;i<3;i++ ) { b[i]=a[i]; c[i]=a[i]; }
也可以使用指针,再利用循环进行对应赋值,比如:
int a[3]={ 1,2,3 },b[3],i,*p,*q; float c[3],*r;
for ( i=0,p=a,q=b,r=c;i<3;i++,p++,q++,r++ ) { (*q)=(*p); (*r)=(*p); }
c语言中将一个数组的值赋给另外一个数组,好像要用指针来赋值
把一个数组的全部元素赋给另一个元素,如果是字符数组,用strcpy或strncpy,如果是非字符型数组,可以用memcpy函数
void * memcpy ( void * destination, const void * source, size_t num );
也可以用for loop
int i;
int n = sizeof(a)/sizeof(a[0]);
for(i=0; i
<n; i++){
a[i] = b[i];
}
如果必须用指针可以这样
int i = 0;
int n = sizeof(a)/sizeof(a[0]);
while(i < n){
*p1++ = *p2++;
i++;
}
//用不用都可以。
#include "stdio.h"
void main()
{
int a[]={0,1,2,3,4,5,6,7,8,9},b[10],c[10];
int i,*p=a;
for(i=0;i<10;i++)
b[i]=a[i]; //不用指针赋值。
for(i=0;i<10;i++)
c[i]=*(p+i); //用指针赋值。
for(i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
for(i=0;i<10;i++)
printf("%d ",c[i]);
printf("\n");
}
错误的,不能用赋值语句将一个字符串常量直接给一个字符数组赋值。
chars[20];
charss[]="hello";
s=ss;错误原因是:是您不能使用赋值语句将一个字符数组直接赋值给一个字符串数组,也就是说,必须使用strcpy()函数来实现一个字符串的副本(在c语言中,但是在c++的string类中,上面的赋值是正确的)。
因为赋值字符“=”右边的表达式也可以是赋值表达式,下面的形式变量是=(变量=表达式);这是真的,所以它是嵌套的。展开后的一般形式为:variable=variable=…=表达式;例如:a=b=c=d=e=5;根据赋值运算符的正确啮合,其有效等价为:e=5;D=e;C=d.B=C.A=B;
Chara[]="toyou";正确的理由:因为当你声明一个数组变量时,你只是为它腾出空间并初始化它,这是c语法。
扩展资料:
C语言中字符串赋值的理解
一、指针式赋值
上面的例子很明显,也很容易理解。但是下面的方法有点难以理解。
通过程序的运行,我们可以知道:char*p="hello";这个字符串赋值非常好。为了理解这个赋值,我们首先需要理解双引号在这个语句中的作用(注意:这是双引号,不要使用单引号)。双引号有三个主要作用:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
这里所返回的地址就赋值给了char*类型的指针变量p。
二、通过字符数组直接把字符串赋值。程序如下:
三、需要注意的一些问题
直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。
在VBA中如何用一个数组给另一个数组赋值?
通过数组循环的方式进行数组赋值。
示例:
Dim names '定义一个初始化数组 Dim dest(3) '定义一个要赋值的数组 '赋值 names = Array("小明", "小红", "效力", "张明", "王武", "", "", "", "", "", "") '通过Ubound()函数计算上界,LBound计算数组下界 For i=LBound(dest) to UBound(dest) dest(i) = names(i);//数组赋值 next i
应该循环数组并比较后赋值,或按位赋值
dim B() as double
redim B(4)
B(1) = A(0)
B(2) = A(1)
B(3) = A(3)
B(4) = A(5)
dim i%
dim A(0 Tto 8),B(0 to 3)
a=array(1,2,3,4,5,6,7,8,9)
B(0)=A(0)
B(1)=A(1)
B(2)=A(3)
B(3)=A(5)
1.首先在Excel电子表格中选择要分配数组的单元格。
2.n、在界面中,点击“insert”和“formcontrol”中的“button”选项。
3.在接口版本的表中生成按钮控件,修改控制的名字。
4.接下来,在界面中,点击“查看代码”选项。
5.在VBA接口中继续,并输入定义一维数组的语句。
6.然后,在VBA接口中,输入一条为单元格分配权重数组的语句。
7.最后,在这个接口中,单元格成功地显示了数组分配结果。
怎么把一个数组赋值给另一个数组
数组赋值的规律是:
1.不能给固定数组赋值;
如:
dim a(5)As string
dim b(5)As string
a(0) = 0
a(1) = 1
a(2) = 2
a(3) = 3
a(4) = 4
a(5) = 5
b()=a()'报错
2.可以给动态数组赋值;你的例子就是这种情况;
3.可以把数组赋值给一个变体,得到一个包含数组的变体.
如:
dim a(5)As string
dim b 'b为变体
a(0) = 0
a(1) = 1
a(2) = 2
a(3) = 3
a(4) = 4
a(5) = 5
b=a()
Print b(0)
Print b(1)
Print b(2)
Print b(3)
Print b(4)
Print b(5)