❶ c語言中變數初始化與賦初值有什麼不同
語法上的初始化是指對象定義時,對應的分配空間之後對於值的操作。C語言中,靜態和全局變數默認置0,有初始化列表的復制初始化列表的值到空間(如有不足,剩餘部分置0),局部自動變數可以不初始化(調試器參與時可能被隱式地初始化為其它的值("debug magic number"),例如默認情況下Microsoft C/C++ Debugger會把棧中未初始化的位元組置為0xCC)。
賦初值一般而言是指邏輯意義上的初始化。在C語言中,由於初始化的語法是「=」後加初值,所以「賦初值」基本上就是指語法上的初始化。不過隨著語言的發展,「賦初值」的意義發生了擴大。對有構造語義但又允許不初始化而不產生編譯錯誤的程序設計語言而言,兩者有些微妙的差別。例如C++的構造函數中,用若干個成員名和括弧括起來的初始化值構成的初始化列表是語法上的初始化(也可能是邏輯意義上的初始化,如果沒有被構造函數體內的值覆蓋),而構造函數體中對成員的賦值語句是邏輯上的初始化但不是語法上的初始化。
冰的悸動 錯誤:
1.「程序開始時進行初始化」的說法僅僅適用於靜態或全局變數,而不適於局部自動變數。局部自動變數在函數調用時才能被初始化。
2.「但是根據編譯器的不同有些編譯器會自動賦初值0或其他」——這在ISO/IEC C語言標准中不是由實現定義的行為,如果一個編譯器符合標准,那麼行為就是明確的,即視此初始化的對象是否為全局對象來判斷隱式初始化置0還是不進行初始化——從下面的函數定義來看這里應該var2是全局變數,會被置0。非標准編譯器則另當別論(但是我還沒見過會在這點上沒事找茬的)。
❷ c語言中定義什麼必須賦初值
任何變數在取值使用前都必須先賦值。
❸ 什麼是c語言裡面的賦初值
通俗點???
例如:
你買了一支筆,當你買到手的時候,商家已經給這根筆加了一根藍色的筆芯。
筆就是變數;
筆芯就是商家給筆賦的初值。
另:賦值
當你不想用藍色想用黑色時,
根據筆規格(變數類型)找到適合的黑色筆芯就可以了。
不用另外再買一支筆。
❹ c語言中如何給數組定義並賦初值
字元串數組定義賦值:
char c[6]={'c', ' h ', 'i', 'n', 'a' , '