1樓:風若遠去何人留
區分變數的型別,有兩種情況。
1 區域性變數。
區域性變數在沒有顯式初始化時,其值c語言規範沒做要求,可以是隨機值,也可以是編譯器隨意給定的值。
比如gcc編譯器的區域性變數就是隨機值,可能為任何值。而微軟的編譯器,如vc或vs,則會初始化為全c,即0xcccccccc。
2 全域性變數或靜態區域性變數。
所有的全域性變數,即定義在函式外的變數,預設值為0。
所有的靜態區域性變數,即定義在函式內部的
static int name;
形式的,預設初始化為0。
c語言問題——未初始化int變數的初值
2樓:
c語言問題未初始化int變數的初值是設定錯誤造成的,解決方法為:
1、首先我們開啟我們的編譯器,在main函式中寫。
2、然後我們宣告定義變數的型別,比如int(整形)double(雙精度)float(浮點型)char(字元型),已 int整形為例。
3、之後要有個空格。
4、接下來寫我們的變數名,注意區分大小寫,大小寫在c語言中是不一樣的。
5、如果想宣告一個型別的多個變數中間要加上逗號。
6、以宣告a,b兩個變數為例,注意在結束時不要忘記了分號。
3樓:風若遠去何人留
int變數未初始化的預設初值,和變數的型別有關。
1 區域性變數,在未初始化情況下,初值為隨機值。c規範對該初值並沒有做規定,具體實現由編譯器決定。如vc/vs等編譯器,會將初始值值為0xcccccccc, 而gcc等編譯器則是不可預知的隨機值。
2 靜態區域性變數,即帶static修飾的區域性變數。
全域性變數和靜態全域性變數,即定義在函式外,不屬於任何一個函式的變數。
這幾種預設初值為0.
4樓:匿名使用者
沒有初始化,記憶體上的值是任意的,但只要你宣告瞭變數,變數的地址就是固定的了,因此裡面的值,無論你重啟編譯器多少次,結果都是一樣的。如果你在下面再定義一個int型別的變數,再列印看看,它的值也許就跟你上面的值不同
不初始化就參與運算是很危險的,有的編譯器是不允許這樣操作的,因此變數最好要初始化
5樓:匿名使用者
在debug配置中,vc++自動把未初始化的空間填充了0xcc,int型的就是0xcccccccc,按有符號整數列印,就是-858993460了
6樓:匿名使用者
全域性是0
區域性的int預設的是-858993460,即0xcccccccc。
7樓:
你有沒有初始化?沒有的話 系統預設分配最大值
8樓:
你重啟電腦,說不定就不一樣了
c語言全域性變數的定義,C語言中如何定義全域性變數
在所有函式外部定義的變數稱為全域性變數 global variable 它的作用域預設是整個程式,也就是所有的原始檔,包括 c 和 h 檔案。例如 int a,b 全域性變數 void func1 todo float x,y 全域性變數 int func2 todo int main todo r...
C 圓類,要求定義建構函式(以半徑為引數,預設值為0,周長和麵積在建構函式中生成)和複製建構函式
不會的。c 類的建構函式詳解 一 建構函式是幹什麼的 class counter private 資料成員 int m value 該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式 由建構函式完成成員的初始化工作 eg counter c1 編譯系統為物件c1的每個資料成員 m v...
C語言中,int910的值是0還是
c裡整除除以整數結果本身就是整數,9 10結果就是0,不需要再做轉換,另外c裡沒有int這個方法,如果是強制轉換,也要寫成 int 9 10 如果是小數強制轉換後會只取整數部分,比如說 int 3.9結果就是3.注 如果你希望兩整數相除結果是浮點數,可以寫成比如int a 10,b 3 float ...