发布网友 发布时间:2023-06-24 02:14
共1个回答
热心网友 时间:2023-09-11 20:29
用不用都可以。
#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");
}
(1)字元阵列相当于字串,可以用标准函式strcpy()直接进行字串复制。
比如 把c【】复制到a中就【】可以这样用:strcpy(a,c);
这个函式包含在标头档案 <string.h>中.
(2)单个复制
for(int i= 0; i < 2; ++i)
{
b[i] = a[i];
}
有两种方法可以实现。 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
最简单的: s2[0]=s1[0]; s2[1]=s1[1]; s2[2]=s1[2];
或者你用回圈: for(int i=0;i<3;i++)s2[i]=s1[i];
完全赋值??
b=a;
即可。
当然,要用你上面的写法的话,必须
b[i][j]=a[i][j];
你上下标都不一样,值当然不同啦。
第一个问题,用FOR回圈吧第一个阵列的值 给第二个,
第二个问题,可以,完全可以,第一个矩阵刚好是第二个的转制矩阵,当然可以了。
array_bine() 建立一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
为方便说明,定义两个整型阵列a,b,并实现将a中的值赋值到b中。
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 <cstring>
赋值阵列的程式码为
memcpy(b,a,sizeof(a));
将小阵列的值回圈赋值给大阵列,如果大阵列未满,继续回圈赋值。或者直接一个回圈(大阵列的长度作为回圈*)赋值到小阵列完,重置小阵列的index为0,直到大阵列全部赋值完。
【相关拓展】
第一种用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);变数依次是(原阵列,从原阵列第几位开始,目标阵列,从第几位开始贴上,复制长度)
String [] arrA = {"a","b","c","d"};
String [] arrB = new String[10];
if(arrA.length > 0 && arrB.length > 0){
for(int i = 0; i < arrB.length; i++){
arrB[i] = arrA[i % arrA.length];
}
}
for(String str: arrB){
System.out.println(str);
}