課程
/后端開(kāi)發(fā)
/C
/C語(yǔ)言入門(mén)
第五行sum=0有什么用?刪除不是也可以運(yùn)行
2015-05-11
源自:C語(yǔ)言入門(mén) 4-8
正在回答
1. 變量的定義、聲明
變量的聲明有兩種情況:
一種是需要建立存儲(chǔ)空間的。例如:int? a。在聲明的時(shí)候就已經(jīng)建立了存儲(chǔ)空間。這種聲明是"定義性聲明(defining declaration)",即我們平時(shí)所說(shuō)的“定義”。
另一種是不需要建立存儲(chǔ)空間的,只是告訴編譯器某變量已經(jīng)在別處定義過(guò)了。例如:extern int a。其中,變量a是在別處定義的。這種聲明是"引用性聲明(referncing declaration)",即我們平時(shí)所說(shuō)的“聲明”。
?
從廣義的角度來(lái)講,聲明中包含著定義,但是并非所有的聲明都是定義。即,定義性聲明既是定義又是聲明,而引用性聲明只是聲明。例如:int a。它既是聲明,同時(shí)又是定義。然而對(duì)于 extern int a 來(lái)講,它只是聲明不是定義。
一般的情況下我們常常這樣敘述,把建立空間的聲明稱(chēng)之為”定義”,而把不需要建立存儲(chǔ)空間的稱(chēng)之為”聲明”。很明顯這里指的聲明是范圍比較窄的,也就是說(shuō)引用性的聲明。
例子:
int a; //定義性聲明,分配存儲(chǔ)空間,初值不確定
int b = 0; //定義性聲明,分配存儲(chǔ)空間,賦初值
extern int c; //引用性聲明,不分配存儲(chǔ)空間,只是告訴編譯器這個(gè)變量已經(jīng)在別處定義過(guò)了
2. 函數(shù)的定義、聲明
函數(shù)的定義和聲明也是一樣,定義需要分配存儲(chǔ)空間;聲明只是告訴編譯器這個(gè)函數(shù)已經(jīng)在別處定義過(guò)了。
函數(shù)的定義和聲明比較好區(qū)分。有函數(shù)體的即為定義,不帶函數(shù)體即為聲明。
//聲明
double sqrt(double x);
//定義
double sqrt(double x)
{
????????? return x*x;
}
3. 定義與聲明的區(qū)別
(1)是否需要分配存儲(chǔ)空間。
(2)在一個(gè)作用域中可以重復(fù)聲明,但不能重復(fù)定義。這是由(1)決定的,可以重復(fù)幾次告訴編譯器某個(gè)變量、函數(shù)已經(jīng)在別處定義了,但不能重復(fù)多次地讓編譯器為同一個(gè)變量、函數(shù)分配不同的存儲(chǔ)空間。
---------------------------------------------------------------------------------------------------------------------------
所以sum=0;是將0賦值給sum;如果不賦值,sum的值不確定,運(yùn)行的結(jié)果也不可知
qq_北落師門(mén)_0 提問(wèn)者
初始化sum
舉報(bào)
C語(yǔ)言入門(mén)視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
2 回答這是運(yùn)行成功的 我想問(wèn)一下 第五行為什么不可以刪掉呢
3 回答我已經(jīng)把第五行刪掉了,可為什么還是不行。
3 回答為什么評(píng)論區(qū)這個(gè)也是錯(cuò)的? 刪除第五行,在第六加最后幾(int)就行
7 回答為什么我要把第五行刪掉才行
1 回答為什么第五行的double不可以改成int
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-05-11
1. 變量的定義、聲明
變量的聲明有兩種情況:
一種是需要建立存儲(chǔ)空間的。例如:int? a。在聲明的時(shí)候就已經(jīng)建立了存儲(chǔ)空間。這種聲明是"定義性聲明(defining declaration)",即我們平時(shí)所說(shuō)的“定義”。
另一種是不需要建立存儲(chǔ)空間的,只是告訴編譯器某變量已經(jīng)在別處定義過(guò)了。例如:extern int a。其中,變量a是在別處定義的。這種聲明是"引用性聲明(referncing declaration)",即我們平時(shí)所說(shuō)的“聲明”。
?
從廣義的角度來(lái)講,聲明中包含著定義,但是并非所有的聲明都是定義。即,定義性聲明既是定義又是聲明,而引用性聲明只是聲明。例如:int a。它既是聲明,同時(shí)又是定義。然而對(duì)于 extern int a 來(lái)講,它只是聲明不是定義。
?
一般的情況下我們常常這樣敘述,把建立空間的聲明稱(chēng)之為”定義”,而把不需要建立存儲(chǔ)空間的稱(chēng)之為”聲明”。很明顯這里指的聲明是范圍比較窄的,也就是說(shuō)引用性的聲明。
?
例子:
int a; //定義性聲明,分配存儲(chǔ)空間,初值不確定
int b = 0; //定義性聲明,分配存儲(chǔ)空間,賦初值
extern int c; //引用性聲明,不分配存儲(chǔ)空間,只是告訴編譯器這個(gè)變量已經(jīng)在別處定義過(guò)了
?
2. 函數(shù)的定義、聲明
函數(shù)的定義和聲明也是一樣,定義需要分配存儲(chǔ)空間;聲明只是告訴編譯器這個(gè)函數(shù)已經(jīng)在別處定義過(guò)了。
函數(shù)的定義和聲明比較好區(qū)分。有函數(shù)體的即為定義,不帶函數(shù)體即為聲明。
?
例子:
//聲明
double sqrt(double x);
?
//定義
double sqrt(double x)
{
????????? return x*x;
}
?
3. 定義與聲明的區(qū)別
(1)是否需要分配存儲(chǔ)空間。
(2)在一個(gè)作用域中可以重復(fù)聲明,但不能重復(fù)定義。這是由(1)決定的,可以重復(fù)幾次告訴編譯器某個(gè)變量、函數(shù)已經(jīng)在別處定義了,但不能重復(fù)多次地讓編譯器為同一個(gè)變量、函數(shù)分配不同的存儲(chǔ)空間。
---------------------------------------------------------------------------------------------------------------------------
所以sum=0;是將0賦值給sum;如果不賦值,sum的值不確定,運(yùn)行的結(jié)果也不可知
2015-05-11
初始化sum