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

文章推薦指數: 80 %
投票人數:10人

c 怎樣將一維陣列整體賦相同初值,1樓加百列陣列是不可以整體賦值的, ... 無論陣列有多大,全部初始化為0的操作很簡單,如int a[3000]=;就可以將a ... c怎樣將一維陣列整體賦相同初值 首頁>科技時間2021-06-2723:50:56 1樓:加百列 陣列是不可以整體賦值的,只能在陣列定義的時候初始化。

一、一維陣列初始化如下: 二、二維陣列初始化如下: 二、多維陣列初始化如下: 2樓: c/c++不支援陣列整體賦值,可以在宣告陣列時整體初始化。

無論陣列有多大,全部初始化為0的操作很簡單,如inta[3000]=;就可以將a的3000個元素全部置0;若要賦其他值,例如全部賦值為7,寫成inta[3000]=;則不行,這隻給a[0]賦值為7,其餘的都是0。

在陣列長度較小時,可直接寫入資料初始化,如inta[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對非字元型陣列賦值有可能會出問題; 比如:intarray1[200]; intval=2; memset(array1,val,200*sizeof(int)); 這樣的結果必然會出錯!因為memset是以位元組為單位進行賦值的,最後陣列的結果可預知,但是完全錯誤……如果是對字元陣列用這樣的方式進行賦值的話就不會出錯,因為字元只佔一個位元組,而int佔四個位元組…… 4樓: 用memset函式,引數是陣列指標!可參照memset函式說明! 5樓:匿名使用者 intarray1[200]; intval=2; memset(array1,val,200); 呵呵!4樓對了,很久沒有忘了sizeof(int)*200不過還是做個迴圈比較清晰 for(inti=0;i<200;i++)array1[i]=val; 6樓:悠哉芸 inta[n]= 這樣可以嗎? 7樓:匿名使用者 可一試一下memset函式 c語言中怎麼把一維陣列初始化為全零啊,不用迴圈 8樓:匿名使用者 下面3種方法: 1.intarr[10]=; 如果只對陣列的一部分進行初始化,則編譯器將把其他元回素設定為0。

因此,答當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0(就像前一句說的那樣)。

2.intarr[31]={}; 3.用memset函式在程式開始時初始化陣列。

比如: intarr[1024]; memset(arr,0,1024);//清零 9樓:幻の上帝 2種方法: 1.靜態變數制(全域性變數、靜態區域性變數)即使沒有初始化列表,也會自動全部初始化填充0。

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

所以只要使初始化列表全為零即可。

例如ls所說的inta[10]=;。

注意這裡陣列大小不能省略,否則初始化列表會被當做陣列的全部內容。

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

(其實迴圈不也是賦值麼--。

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

使用memset前需#include。

---- [原創回答團] 10樓:天雲一號 具體初始來化方法可以參考如下程源序段:(方法bai一)int a[5] = ;  // 將整型陣列a的每du個元素都初始化為 zhi0 或者也可以用如下方dao法進行初始化:(方法二)int a[5] = ; // 將整型陣列a的每個元素都初始化為0,初始化效果同上 方法一的初始化方法是將陣列元素都初始化為同一個數值; 方法二的初始化方法可以分別對陣列的每個元素進行初始化,每個元素的數值可以不同。

11樓:匿名使用者 設定一個靜態陣列,就預設0了 如staticinta【8】; 12樓:陽光上的橋 例子:inti,j,ok[10]; memset(ok,0,sizeof(ok)); memset就能完成你的功能。

13樓:匿名使用者 很簡單只要初始化第一個就行可以了,其他的會自動初始化為0,如下 inta[size]=; 14樓:匿名使用者 memset(陣列地址,0,陣列長度); 15樓:匿名使用者 inta[10]=; 16樓:匿名使用者 vc裡可以用inta[size]=; 不行的話就用staticinta[size]=;吧.... c++動態建立一個一維陣列,賦值並顯示每個元素的值,最後釋放記憶體 17樓:it孤鶩 #include usingnamespacestd; voidmain() 其他用戶還看了: 多肉上有一些白色的小毛蟲,求助,多肉上長了很多白色的蟲子 男人心裡究竟可以愛幾個女人,一個男人心裡究竟可以愛幾個女人 我是個特別的人嗎,女生說我是個特別的人,她是什麼意思呢?20 多肉植物上有些白色的蟲子怎麼治,多肉植物長白色的小蟲子怎麼辦? 我自己覺得性格比較怪異,該怎麼樣處理 多肉土裡有白色的小蟲怎麼辦,多肉土裡爬了很多小蟲子怎麼辦 猜你喜歡 多肉上有一些白色的小毛蟲,求助,多肉上長了很多白色的蟲子 男人心裡究竟可以愛幾個女人,一個男人心裡究竟可以愛幾個女人 我是個特別的人嗎,女生說我是個特別的人,她是什麼意思呢?20 多肉植物上有些白色的蟲子怎麼治,多肉植物長白色的小蟲子怎麼辦? 我自己覺得性格比較怪異,該怎麼樣處理 多肉土裡有白色的小蟲怎麼辦,多肉土裡爬了很多小蟲子怎麼辦 推薦閱讀 多肉上有一些白色的小毛蟲,求助,多肉上長了很多白色的蟲子 男人心裡究竟可以愛幾個女人,一個男人心裡究竟可以愛幾個女人 我是個特別的人嗎,女生說我是個特別的人,她是什麼意思呢?20 多肉植物上有些白色的蟲子怎麼治,多肉植物長白色的小蟲子怎麼辦? 我自己覺得性格比較怪異,該怎麼樣處理 多肉土裡有白色的小蟲怎麼辦,多肉土裡爬了很多小蟲子怎麼辦 種花時發現了許多白色的小蟲,一澆水就全出來了,在盆子裡爬來爬



請為這篇文章評分?