C语言一维数组赋值方法

只能用for语句逐个赋值吗

  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 <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  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\t", b[inx]);
  printf("\n");
  memcpy(b, a+4, 5 * sizeof(int));
  for (inx=0; inx!=5; ++inx) printf("%d\t", b[inx]);
  printf("\n");
  return 0;
  }

  

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-08-08

不单能用for语句

一维数组的声明:

类型说明符 数组名[常量表达式] 

例如 int C[10],它表明数组名为C,此数组有十个整型变量。

注:常量表达式中可以包括常量和符号常量,不可以包括变量。也就是说,C不允许对数组的大小做动态定义,即数组的大小不依赖於程序运行过程中变量的值。

一维数组的引用:

C语言规定只能逐个引用数组元素而不能一次引用整个数组。

数组元素的表现形式为:数组名[下标] 下标可以是整型常量或整型表达式。例如  C[0]=C[5]+C[7]-C[3*2]

一维数组的初始化:

可以用赋值语句或输入语句使数组中的元素得到值,但这样会影响速度。可以使数组在运行之前初始化,即在编译阶段使之得到初值。在定义数组时对数组元素赋以初值。static int a[5]={0,1,2,3,4}

本回答被网友采纳
第2个回答  2010-07-20
int i,a[10];
for(i=0;i<10;i++)
cin>>a[i];
这样可以用键盘赋值。输入时可以以空格或回车作为分隔符
第3个回答  推荐于2017-10-04
int i,a[10];
for (i=10;i~=0;i--)
a[i]=i;本回答被提问者采纳
第4个回答  2019-06-24
main()
{int
a[10];int
b=3;
for(i=0;i<10;i++)
a[i]=0;
//空转
理论上在开头应该写a[10]={0}
即可
j=3;
//赋值但应该在开头定义j的类型,否则会报错
a[j]=b;
printf("%d",a[j]);}
结果估计是
0
要么就出错
这段程序有问题
相似回答