定義、聲明、初始化、賦值的區別

變量聲明:

extern int a;//只聲明一下這個變量,會在別處定義的
1
變量定義:

int a;//說明該變量在內存中的位置和大小,聲明加定義
1
變量初始化:

int a = 7;//定義時給變量一個值
1
變量賦值:

a=2;//把變量原有的值擦除,重新給一個值
1
C 中的左值(Lvalues)和右值(Rvalues) 
C 中有兩種類型的表達式: 
左值(lvalue):指向內存位置的表達式被稱爲左值(lvalue)表達式。左值可以出現在賦值號的左邊或右邊。 
右值(rvalue):術語右值(rvalue)指的是存儲在內存中某些地址的數值。右值是不能對其進行賦值的表達式,也就是說,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊。 
變量是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。下面是一個有效的語句:

int g = 20;
1
但是下面這個就不是一個有效的語句,會生成編譯時錯誤:

10 = 20;
1
初始化局部變量和全局變量 
當局部變量被定義時,系統不會對其初始化,您必須自行對其初始化。定義全局變量時,系統會自動對其初始化,如下所示:

數據類型 
初始化默認值

int                     0
char                    ''
float                   0
double                  0
pointer                 NULL
1
2
3
4
5
正確地初始化變量是一個良好的編程習慣,否則有時候程序可能會產生意想不到的結果,因爲未初始化的變量會導致一些在內存位置中已經可用的垃圾值。
--------------------- 
作者:午後陽光溫暖一冬 
來源:CSDN 
原文:https://blog.csdn.net/qq_34866146/article/details/81027577 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章