c++怎样将一维数组整体赋相同初值

如题所述

数组是不可以整体赋值的,只能在数组定义的时候初始化。

一、一维数组初始化如下:

二、二维数组初始化如下:

二、多维数组初始化如下:

扩展资料:

数组作为函数形参传递:

1、一维数组传递:void func(int* array);void func(int array[])。

2、二维数组传递:void func(int** array);void func(int (*array)。[n]);                  

数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针,而且在其失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。

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

C/C++不支持数组整体赋值,可以在声明数组时整体初始化。无论数组有多大,全部初始化为0的操作很简单,如int a[3000]={0};就可以将a的3000个元素全部置0;若要赋其他值,例如全部赋值为7,写成int a[3000]={7};则不行,这只给a[0]赋值为7,其余的都是0。在数组长度较小时,可直接写入数据初始化,如int a[5]={1,2,3,4,5};,若数组太长,如前述a[3000],写3000个数显然是不现实的。遇到这种情况,可以定义一个带参数的宏来简化初始化的书写,例如要把a[3000]全部初始化为9,可用以下代码:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#define X(x) x,x,x,x,x,x,x,x,x,x//带参数的宏,x是预赋之值
int main(void){
    int a[3000]={X(X(X(9))),X(X(X(9))),X(X(X(9)))};//以赋9为例
    printf("%d %d %d\n",a[0],a[1499],a[2999]);//打几个出来看看...
    return 0;
}

第2个回答  2010-06-07
第一:使用for循环赋值;
第二:使用memset函数进行赋值; 但是使用memset对非字符型数组赋值有可能会出问题;
比如:
int array1[200];
int val=2;
memset(array1,val,200*sizeof(int));
这样的结果必然会出错!因为memset是以字节为单位进行赋值的,最后数组的结果可预知,但是完全错误……如果是对字符数组用这样的方式进行赋值的话就不会出错,因为字符只占一个字节,而int占四个字节……
第3个回答  2010-06-07
用memset函数,参数是数组指针!可参照memset函数说明!本回答被提问者采纳
第4个回答  2010-06-07
int array1[200];
int val=2;
memset(array1,val,200);

呵呵!4楼对了,很久没有忘了sizeof(int)*200

不过还是做个循环比较清晰
for(int i=0;i<200;i++)
array1[i]=val;

c++ 一维数组如何赋值
数组只能在一次赋初值,即:int kk[9] = {0, 1, 3};只是把kk数组的前3个元素赋值,其它为0。

如何对一个一维数组进行赋值操作?
1 按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2 当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。如一维数组为a,...

C\/C++中的数组和数组的memset函数
C\/C++中的数组和memset函数是编程中常用的工具。数组是一组相同数据类型的变量连续存储的集合,定义时需要指定类型和元素数量,如一维数组int a[3]表示3个整型元素连续存储。初始化数组时,可以逐个元素赋值,未初始化的元素默认为0或特定值。对于数组赋值,memset函数尤其实用。它允许对整个数组的所有元素...

C++中定义一个类,类的私有成员为一个一维数组,数组长度为10,那么给元...
setNumber(int *number){ array[0] = number[0];………}\/\/ 如果是char*的话, 可以考虑用strcpy(注意在末尾添加一个null 即 ‘\\0’)恩 就这样子吧

C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定_百度...
方法一:……int n;cout<<"请输入你想建立的一维数组维数:"<<endl;cin>>n;int *array = new int[n];……delete [] array;方法二:现代c++程序一般用容器vector代替数组。vector<int> vec;添加值(比如1)用vec.pushback(1)

假定一维数组a[n]中的元素值均在[0,200]区间内,用C++编写一个算法
int a=0,b=0,c=0,d=0,e=0;int m[x]={}; \/\/x为元素个数,大括号类进行初化赋值 void main(){ for(int i=0;i<x;i++) \/\/x是你的数组元素个数 { if(a[i]>=0 && a[i]<=20)a++;if(a[i]>=0 && a[i]<=20)a++;if(a[i]>=21 && a[i]<=50)a++;if(...

c语言中怎么把一维数组初始化为全零啊,不用循环
1.int arr[10]={0};如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。2.int arr[31]={};3.用memset函数在程序开始时初始化数组。比如:int arr[1024];memset(arr, 0, 1024); \/\/...

根据一维数组建立单链表使表中元素与数组元素次序相同并统计表中结点...
}}public:myList(){tail = head = NULL;}\/\/添加数组到链表void addArray(int arr[], int len){for (size_t i = 0; i != len; i++){add(arr[i]);}}\/\/显示所有元素void myDisplay(){for (Node* p = head; p != NULL; p = p->next){cout << p->val << " ";}cout...

c++ 如何把一个数组的值赋到另一个数组
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字节的数据...

c++中多维数组如何进行初始化?
char arr1[8] = {3,3}; \/\/数组长度为8 能表示到arr1[7]char arr2[ ] = {3,3}; \/\/数组长度为2 只能表示到arr2[1]这里有个默认值的说法。没初始化的数组元素它们都默认为0。也就是说,在你定义一个数组时已经确定了它的长度,如果你不初始化它们,默认都为0 。你的程序中...

相似回答