c語言定義整型陣列並未初始化資料

2021-12-25 08:22:21 字數 3712 閱讀 4501

1樓:在晴天的雨傘

首先要清楚什麼是初始化:

在宣告變數的同時賦值就是初始化。

而在其後的賦值語句就不是初始化。

一般來說,如果你不給變數一個確定的值,就直接引用它,則系統不能保證執行的唯一性,而這是我們程式所不允許的。所以我們一般用初始化的方法來確定其值。

如char str[100]

引用memset(str,sizeof(str),0);

即將所有的陣列元素初始化為0;

但並不總是這樣。如下:

int i;

for (i=0;i<10;i++)...

i就不是通過初始化,而是用賦值的方法確定值的。

擴充套件到陣列中,也是如此,如果你在引用陣列元素前不把它的值確定下來,程式執行就可能不確定。

因為確定陣列元素值的方法有兩個:初始化和賦值,所以初不初始化要視情況而定。

2樓:楚霄06自力更生

首先. 試一下的方法是錯誤的.

(1)全域性變數

未初始化的全域性變數是 0

(2)區域性變數

<1>debug版

是填充字元, 比如可能是 0xcdcdcdcd 等<2>release版

是亂碼, 也就是這個地方原來(在這之前被其他變數使用的時候)遺留下來的資料.

c語言陣列初始化可以是實型嗎

3樓:千鋒教育

1、陣列,顧名思義,是相同型別的陣列成的一個組,也就是說是把相同型別的一系列資料統一編制到某一個組別中。這樣就可以通過陣列名+索引號簡單快捷的操作大量資料。這就和全校學生一樣,把學生分成多個班級,每個學生都是班級中的一員,如果要找張三,如果沒有班級的話,就要在全校學生中一個一個尋找,一直到找到為止;但是如果引入了班級,就可以在某某班級中尋找張三,這樣就更加方便快速了。

2、一般有四種陣列定義方式,以一維陣列為例:

//定義指定維數的陣列

int arr[10];

//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。

int arr = ;

//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;

//動態分配一個陣列。下面分配了一個有10個元素的陣列。

int *arr =(int *) malloc(10 * sizeof(int));

4樓:沫染少年無情海

陣列初始化可以知己定義 如 string con= new string 初始化是自己定義的 不通的資料型別陣列 初始化的資料為不同型別

如何初始化一個byte陣列,然後賦值

5樓:橋亙

初始化一個byte陣列,長度為2:

byte b = new byte[2];

然後新增資料:

b[0] = 12;

b[1] = 23;

c++中結構體陣列中如何初始化部分資料?

6樓:育知同創教育

snack[0].band = "chocolate king";//這行在snack[0]底下顯示紅色波浪線,提示表示式必須為可修改的左值 ——字元陣列表示的字串是不能賦值的,可用strcpy函式:strcpy(snack[0].

band, "chocolate king"); 如果band的型別為string就可以賦值了。

c#物件初始化問題(可否像c語言的結構一樣

7樓:騰訊電腦管家

include

#include

int jc(int m)

int c(int m,int n)

int main(void)

有關c語言初始化陣列的問題

8樓:育知同創教育

一般對數

復組初始化可以用制以下方法實現:

(1)在定

bai義陣列時對陣列元素賦以初du值。如:

static int a[10]={0,

zhi1,2,3,4,5,6,7,8,9}dao;

經過上面的定義和初始化後,a[0]=0,a[1]=1,…,a[9]=9。

(2)初始化時可以只對一部分元素賦初值。例如:

static int a[10]={0,1,2,3,4};

定義的陣列有10個元素,但只對其中前5個元素賦了初值,後5個元素初值為0。

(3)如果想使一個陣列的元素值全部為0,可以用下面的方法:

static int a[10]={0,0,0,0,0,0,0,0,0,0};

不能用:

static int a[10]={0*10};

如果對static型陣列不賦初值,系統會對定義的所有陣列元素自動賦以0值。

(4)在對全部陣列元素賦初值時,可以不指定陣列長度。

j**a陣列類初始化如何賦值

9樓:匿名使用者

////111111111111111111111111111111111111111

comparable a=new comparable;

表中有幾個值,陣列就有幾個元素。如果非要4個,可以再補個null。適用於長度較短的陣列。

//22222222222222222222222222222222int initvalue=new int;

comparable a=new comparable[100];

for(int i=initvalue.length-1;i>=0;i++)

長的這樣做。

10樓:於浩

comparable s=;

估計也只能這樣子了.這麼寫不能直接指定陣列的長度.

資料特別多的話,最好是把你的資料用個int陣列包裝起來,再寫個迴圈.

11樓:匿名使用者

comparable a=new comparable[4];

for(int i = 0; i < a.length; i ++)

12樓:匿名使用者

如果你的陣列賦值都很有規律可以用迴圈來做,如果不是的話那就只能這樣了!!

但是你也可以這樣

int【】 a=;

c語言用scanf初始化陣列,scanf(『』%d『』),明明中間什麼都沒有,為什麼輸入資料要加空

13樓:夜獨行孤單

#include

int main()

return 0;}

14樓:萢萢

因為陣列有多個數,不用空格分割開,系統就不認識是一個數還是多個數了。

關於c語言中陣列定義問題

15樓:育知同創教育

主函式內定義的陣列在堆疊段中分配記憶體。

全域性變數陣列在資料段中分配記憶體。

一般資料段比堆疊段大很多,

所以堆疊段分配不了的記憶體,資料段可以分配

(1)在堆疊段中分配記憶體,由於太大無法分配,所以錯誤。

(2)在資料段中分配記憶體,資料段可以分配,無錯誤。

(3)陣列比(1)需要的記憶體少,在堆疊段大小範圍內,可以分配,無錯誤(4)同(3)

c語言指標初始化,c語言指標初始化

int array 4 5 6 一級指標,指標向一個陣列,該陣列為int 4 5 6 int a 4 5 6 pa 二級指標,指向上一行的一級指標 對於動態分配的結構,不可能用陣列這種形式來儲存的。因為陣列的下標必須在編譯時刻明確為常量。樓主用的c 可以考慮用stl的vector。另外,我覺得本身用...

c語言指標初始化的問題

如果你是需要賦字串的,不需要給它分配空間,但是如果你要給指標結構體賦某個值,那是需要給指標指定記憶體空間的,所以你上面的程式只要這樣就好了 main s的話,就是後面的str1之類的東西是要一個地址 main str2 bushishabi 去掉 printf s n s n str1,str2 要...

在C語言中,為什麼定義變數的時候總是初始化為0呢?該怎麼理解

因為變數是可以變動的,定義一個變數不初始化時,變數會是一個隨機數,進行計算了的時候,就會引用那個隨機數進行計算,會有誤差。如果全域性變數在定義時不初始化則初始值是0,如果區域性變數在定義時不初始化則初始值是不確定的。誰說總是初始化0的,全域性變數和靜態變數會,區域性變數不一定,可恨的不同的編譯所採用...