《C和指標》這本書中變數的宣告和定義,沒有搞明白啊,反倒弄糊塗了,請高手指教

時間 2022-03-31 08:55:08

1樓:種燒餅的怪叔叔

簡單說一下吧,宣告有幾種:

1)對於乙個已經定義過的變數(例如i)而言,在這個檔案或者某個其他檔案的「全域性變數域」中中使用extern i,那麼這裡的i就是宣告。舉例 int i=3;extern i;extern i;那麼後面兩個i就是宣告了,記住,所有省略extern的宣告只能在全域性域

2)extern的區別:有意思的是,不要見到extern就以為是宣告,extern i=3就不是宣告,他的意思是i是乙個全域性變數,這裡的extern是可以省略的,如果static i=3則表示i是檔案作用域

那麼請思考,在乙個全域性域定義 int i;int i; int i;是否合法,為什麼

3)函式的宣告,格式不多說了,但是很重要的一點,函式也是一種變數,同樣可以使用extern或者static。

4)針對你上面的提問,a b c一定是定義。具體測試方法:只需要在main函式中使用

sizeof (a)測試是否有返回值,我們知道,宣告是不暫用空間的,如果有返回值,那麼絕對是定義,因為電腦已經為他分配空間了。

2樓:匿名使用者

宣告往往說的是函式,比如:

void sum(int a,int b) ;

上面的屬於宣告。

void sum(int a,int b)上面的屬於定義,因為有實現

簡單理解就是函式沒有實現體,就是宣告,有實現,就是定義。

關於普通變數的往往說宣告的時候比較多,希望你在學語言的時候,不要太糾結於這些表面的東西。

3樓:風若遠去何人留

嚴格來說這些都是定義

可是對於區域性變數不存在宣告的說法 所以有些時候 區域性變數的定義和宣告可以混用

嚴謹的說 宣告的說法並不正確

可以理解就可以了 翻譯的書 往往不準確

函式的宣告和全域性變數的問題,c語言 函式呼叫全域性變數需要宣告變數嗎

函式是函式,變數時變數,沒有講函式可以成為全域性變數的說法 把函式宣告放在第二行,則在主函式裡面任意地點都能呼叫,而在主函式裡面宣告,那如果要呼叫這個函式,就必須在宣告之後,否則無法識別。做個假設 void main void test void fun 這段 你試試可以編譯通過嗎?不可以把?呵呵,...

c 指標 區別,c 中別名 和指標 的區別

這是個運算優先順序的問題,由於 運算的優先順序大於 於是 abc 1先取出abc裡面的內容,再進行 1運算,結果就是abc內儲存的值加1 而 會改變運算順序,先算abc 1,這是將指標abc向下移了一位,再作 運算,也就是取出了指標abc所指位置下乙個位置裡面儲存的內容,這個運算一般只在陣列中進行,...

請簡述c 中引用和指標的區別,淺談C 中指標和引用的區別

砍侃看 關於指標和引用的區別,c primer是這麼說的 1 引用總是指向某個物件 定義引用時沒有初始化是錯誤的。2 賦值行為有差異。給引用賦值修改的是該引用所關聯的物件的值,而不是使引用於另一個物件關聯。引用已經初始化,就始終指向同一個特定物件。舉個列子 引用就像是你的身份證號,一出生就有了,而且...