c 怎樣將一維陣列整體賦相同初值

時間 2021-06-27 23:50:56

1樓:加百列

陣列是不可以整體賦值的,只能在陣列定義的時候初始化。

一、一維陣列初始化如下:

二、二維陣列初始化如下:

二、多維陣列初始化如下:

2樓:

c/c++不支援陣列整體賦值,可以在宣告陣列時整體初始化。無論陣列有多大,全部初始化為0的操作很簡單,如int a[3000]=;就可以將a的3000個元素全部置0;若要賦其他值,例如全部賦值為7,寫成int a[3000]=;則不行,這隻給a[0]賦值為7,其餘的都是0。在陣列長度較小時,可直接寫入資料初始化,如int a[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);//以賦9為例

printf("%d %d %d\n",a[0],a[1499],a[2999]);//打幾個出來看看...

return 0;}

3樓:

第一:使用for迴圈賦值;

第二:使用memset函式進行賦值; 但是使用memset對非字元型陣列賦值有可能會出問題;

比如:int array1[200];

int val=2;

memset(array1,val,200*sizeof(int));

這樣的結果必然會出錯!因為memset是以位元組為單位進行賦值的,最後陣列的結果可預知,但是完全錯誤……如果是對字元陣列用這樣的方式進行賦值的話就不會出錯,因為字元只佔一個位元組,而int佔四個位元組……

4樓:

用memset函式,引數是陣列指標!可參照memset函式說明!

5樓:匿名使用者

int array1[200];

int val=2;

memset(array1,val,200);

呵呵!4樓對了,很久沒有忘了sizeof(int)*200不過還是做個迴圈比較清晰

for(int i=0;i<200;i++)array1[i]=val;

6樓:悠哉芸

int a[n]=

這樣可以嗎?

7樓:匿名使用者

可一試一下memset函式

c語言中怎麼把一維陣列初始化為全零啊,不用迴圈

8樓:匿名使用者

下面3種方法:

1.int arr[10]=;

如果只對陣列的一部分進行初始化,則編譯器將把其他元回素設定為0。因此,答當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0 (就像前一句說的那樣)。

2.int arr[31]={};

3.用memset函式在程式開始時初始化陣列。比如:

int arr[1024];

memset(arr, 0, 1024); //清零

9樓:幻の上帝

2種方法:

1.靜態變數制(全域性變數、靜態區域性變數)即使沒有初始化列表,也會自動全部初始化填充0。

2.對於區域性自動變數,只要初始化列表存在,即使沒有在列表中的部分也會被初始化填充0。所以只要使初始化列表全為零即可。

例如ls所說的int a[10] = ;。注意這裡陣列大小不能省略,否則初始化列表會被當做陣列的全部內容。

----

至於memset,類似於迴圈批量賦值(只是交給庫函式實現了而已),並非初始化。(其實迴圈不也是賦值麼- -。)

1l用法有誤,應為memset(陣列地址, 0, sizeof(陣列變數)),第三個引數應該是陣列所佔空間大小而不是陣列的元素個數(長度)。

使用memset前需#include。

----

[原創回答團]

10樓:天雲一號

具體初始來化方法可以參考如下程源序段:(方法bai一)int a[5] = ;  // 將整型陣列a的每du個元素都初始化為

zhi0

或者也可以用如下方dao法進行初始化:(方法二)int a[5] = ; // 將整型陣列a的每個元素都初始化為0,初始化效果同上

方法一的初始化方法是將陣列元素都初始化為同一個數值;

方法二的初始化方法可以分別對陣列的每個元素進行初始化,每個元素的數值可以不同。

11樓:匿名使用者

設定一個靜態陣列,就預設0了

如 static int a【8】;

12樓:陽光上的橋

例子:int i,j,ok[10];

memset(ok,0,sizeof(ok));

memset就能完成你的功能。

13樓:匿名使用者

很簡單 只要初始化第一個就行可以了,其他的會自動初始化為0,如下

int a[size]=;

14樓:匿名使用者

memset(陣列地址,0,陣列長度);

15樓:匿名使用者

int a[10]=;

16樓:匿名使用者

vc 裡可以用 int a[size] = ;

不行的話就用 static int a[size] = ; 吧....

c++動態建立一個一維陣列 ,賦值 並顯示每個元素的值,最後釋放記憶體

17樓:it孤鶩

#include

using namespace std;

void main()

c一維陣列,C 一維陣列賦值字串問題

這樣看你是否明白 首先要有一個叫user的類,定義三個屬性,分別是account,name,password以記錄帳戶,姓名,密碼資料 class user public string name public string password class program 陣列是從0開始的,你可以認為陣...

c語言一維陣列求平均值,C語言一維陣列求平均值

小夏在深圳 c語言一維陣列求平均值的源 如下 include define n 10 typedef int type type sum type a,int n type s 0 int i for i 0 ia j temp a i a i a j a j temp int main 擴充套件資...

C語言中怎麼把一維陣列賦給另外一維陣列

勵光解芷容 不可以,之所以不可以是因為陣列名是個常量,它的值是陣列首元素地址,即不能將其它值付給這個常量。可以採用迴圈的方法逐個複製,或者採用另一個同型別的指標 相對於陣列名,指標是變數 指向要複製的陣列,之後就可以採用這個指標訪問之前的那個陣列 武冰業雁菡 void main int b 10 i...