① 在c語言中,為什麼定義變數的時候總是初始化為0呢該怎麼理解。
這個不是必須的,也可以不初始化,或者初始化為別的數字,主要看需求。
初始化的目的是為了防止後面沒賦值就進行了使用, 變數剛定義的時候,他指向的值是不確定的,所以如果引用了一個沒有賦值的變數,由於其值的不確定性,會引起程序異常。
如果你後面會引用這個變數做加減操作,可以初始化為 0 ,如果後面做乘除操作,建議初始化為1 。
② 在C語言中,為什麼定義變數的時候總是初始化為0呢該怎麼理解。
因為變數是可以變動的,定義一個變數不初始化時,變數會是一個隨機數,進行計算了的時候,就會引用那個隨機數進行計算,會有誤差。
③ c語言中static unsigned int n=0;是什麼意思請大師指點迷津,學生有禮了。
static 是數據儲存類型
unsigned int 是數據類型
n 是變數名
n = 0 是對變數進行初賦值
其中
數據儲存類型:是指變數儲存在計算機內存中什麼位置以及該變數的生存期
比如:
static 說明變數存儲在計算機中的靜態存儲區中
且該變數在程序執行期間佔用的內存不會被釋放
且該變數不可被其他文件調用
(上述3點涉及知識較多,學到後面你會懂的)
注意:
static聲明的變數是在編譯時進行賦值而不是在程序執行過程中賦值
意思是說:如果在程序中涉及循環static聲明的變數不會被重新賦值
比如;
for(i=1;i<=3;i++)
{
staticintn=3;
n=n+1;
printf("%d ",n);
}
結果為:
4
5
6
如果改成
for(i=1;i<=3;i++)
{
intn=3;
n=n+1;
printf("%d ",n);
}
結果為:
4
4
4
這是因為
static聲明的變數是在編譯時進行賦值而不是在程序執行過程中賦值,而編譯只會進行一次
最後unsigned int 是數據類型,就是說變數在計算機中的儲值方式,unsigned int是無符號整形的意思,無符號是指計算機不會把二進制數據的首位當做符號來處理,(2進制的最高位作為符號位『1』為負『0』為正)其本身儲值方式與int相同 。
④ 為什麼在C語言中靜態變數的初值是0
靜態變數的聲明點似乎相當於全局變數,按照全局變數的初始化規則來初始化為0
⑤ C語言的變數初始值都=0為什麼等於別的可以嗎啊
你好~
只有在你未對變數賦初值的前提下變數的值才會為0~
其實你可以理解為系統賦的值~
你可以對其進行賦值~
定義中賦值方式為 int a=8;(對其他類型賦值時類似)
定義後賦值方式為
int a;
a=8;
⑥ c語言初值
題中的變數為局部變數,默認是沒有初始值的。全局變數一般默認初始值為0
1中n沒有初始值,初始值為原來儲存單元里的值(不可知)
2中的n賦予了初值0
你輸出不同不是因為初始化的問題,而是邏輯問題。
⑦ c語言中,定義一個數組,其中每個變數的初始值是0嗎
如果是一個整型數組,而且沒有初始化的話,默認值是0,如果有初始化,則以初始化的值為主
⑧ 在c語言用一條語句定義一個整型變數,並且初始化為0,則應怎麼編程序
0,大部分編譯器如此,但也有編譯器不是這樣,比如vc。
但是GNU的編譯器一般是0但無論如何,定義而不初始化是不提倡的
vc是一個隨機數,如果是沒用過的內存就是0,如果是使用過再釋放的內存,就是釋放前的值了