⑴ c語言中二維數組可不可以不初始化
二維數組至少要給定第一維的初值
a[][]不行,至少要a[1][]
⑵ C語言數組不能初始化
從各個表達式中可以看出:C是不能正確初始化的,C用來初始化三行兩列的數組,而不是兩行三列的
BD中第一維省略的寫法是可以的,B中沒有初始化到的全部賦值為0,D中依次行從上到下,列從左到右賦值
⑶ c語言 定義一個整型數組,並未初始化數據.
首先要清楚什麼是初始化:
在聲明變數的同時賦值就是初始化。
而在其後的賦值語句就不是初始化。
一般來說,如果你不給變數一個確定的值,就直接引用它,則系統不能保證運行的唯一性,而這是我們程序所不允許的。所以我們一般用初始化的方法來確定其值。
如char str[100]
引用memset(str,sizeof(str),0);
即將所有的數組元素初始化為0;
但並不總是這樣。如下:
int i;
for (i=0;i<10;i++)...
i就不是通過初始化,而是用賦值的方法確定值的。
擴展到數組中,也是如此,如果你在引用數組元素前不把它的值確定下來,程序運行就可能不確定。
因為確定數組元素值的方法有兩個:初始化和賦值,所以初不初始化要視情況而定。
⑷ c語言數組未初始化問題
puts();函數輸出字元時,如果遇到'\0',就終止輸出,沒有遇到就一直輸出字元直到遇到'\0'。
strcat()在拼接字元串後,會自動添加一個'\0'。
所以上面的沒有錯,下面的錯了。
你沒有對字元數組賦值,而且程序也不會自動幫你添加『\0』。所以列印的時候,是整個數組全部列印出來的!至於為何是燙燙燙,與默認的機器碼有關。
⑸ c語言,可不可以不初始化數組
如果你把數組定義為全局數據(定義在主函數之外),那麼編譯器會幫你把數組初始化位0,但是如果不是全局數據,那麼數組數組元素的值就是不確定的了。(其實是多少與你用的編譯器有關,比如vc6.0會把它初始化位十六進制數cc)
但是如果你這樣定義數組
int a[10]={1,2};
那麼有些編譯器會把後面的項初始化為0,但也不能保證所有的編譯器都會這樣做,所以不建議這樣做,盡量對數組進行初始化。
⑹ c語言數組必須初始化嗎
你好,c語言數組不是必須要初始化
⑺ c語言數組不初始化
C語言中,如果不對變數作初始化時,全局變數可以自動初始化為0值。
局部變數的話,變數如果不作初始化時,其中的值是不確定的。
⑻ c語言數組初始化和不初始化運行結果一樣嗎
有可能不一樣,不初始化有可能出現隨機內存
所以要麼直接初始化,要麼做memset(buf,0,1024)或ZeroMemory等後續初始化