定義 宣告 初始化 賦值的區別

2021-09-10 16:53:32 字數 663 閱讀 2755

變數宣告:

extern int a;//只宣告一下這個變數,會在別處定義的

1變數定義:

int a;//說明該變數在記憶體中的位置和大小,宣告加定義

1變數初始化:

int a = 7;//定義時給變數乙個值

1變數賦值:

a=2;//把變數原有的值擦除,重新給乙個值

1c 中的左值(lvalues)和右值(rvalues) 

c 中有兩種型別的表示式: 

左值(lvalue):指向記憶體位置的表示式被稱為左值(lvalue)表示式。左值可以出現在賦值號的左邊或右邊。 

右值(rvalue):術語右值(rvalue)指的是儲存在記憶體中某些位址的數值。右值是不能對其進行賦值的表示式,也就是說,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊。 

變數是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。下面是乙個有效的語句:

int g = 20;

1但是下面這個就不是乙個有效的語句,會生成編譯時錯誤:

10 = 20;

1初始化區域性變數和全域性變數 

當區域性變數被定義時,系統不會對其初始化,您必須自行對其初始化。定義全域性變數時,系統會自動對其初始化,如下所示:

資料型別 

初始化預設值

變數定義 宣告 初始化

變數定義就是告訴編譯器在何處建立變數的儲存,以及如何建立變數的儲存。變數定義指定乙個資料型別,幷包含了該型別的乙個或多個變數的列表,如下所示 type variable list 在這裡,type 必須是乙個有效的 c 資料型別,可以是 char w char int float double bo...

宣告 初始化和例項化的區別

我算是剛入門的菜鳥,今天說下宣告 初始化和例項化的區別和使用,如有不對的地方歡迎各位指正。宣告是指使用乙個物件的時候,先定義屬於哪個型別並,比如string str str是宣告 定義 了乙個string型別的物件。初始化可以理解為給宣告的物件賦值的過程。string str hello str現在...

初始化 賦值 宣告 定義

初始化和賦值是兩個完全不同的操作 列表初始化 用花括號 來初始化變數,列表初始化下,如果損失精度會編譯錯誤,正常初始化則是warning 常見初始化方法 int a 1 int b int c 3 int d double e int f e warning int g error 預設初始化 定義...