課程
/后端開發(fā)
/C
/C語言入門
C程序函數(shù)的形式參數(shù)不可以說明為static型變量
怎么理解?
2015-10-06
源自:C語言入門 5-12
正在回答
假如你寫了代碼
void?func(static?int?a);
函數(shù)調(diào)用總不能是一次吧,有可能很多次。
代碼“static int a”在翻譯單元(翻譯單元:源代碼以及包含的所有頭文件)中只會被執(zhí)行一次,
當(dāng)函數(shù)第二次調(diào)用的時候,代碼“static int a”不會被執(zhí)行,也就不會聲明一個形式參數(shù),所以就不能將main函數(shù)中的變量的值傳遞給被調(diào)函數(shù)。當(dāng)形參代碼中沒有static時,每次調(diào)用函數(shù)的時候,就可以重新聲明一個局部變量。
我是這樣理解的。
如果你聽不懂的話呢,換句話說
因為C語言規(guī)定?不可以用static?做形參 為什么這么規(guī)定,是因為沒必要 靜態(tài)局部變量的特點,是生存周期不被函數(shù)限制 每次調(diào)用函數(shù)時,靜態(tài)變量還是上次退出的值。?除此外?和普通局部變量沒區(qū)別 而參數(shù),?每次調(diào)用的時候,?形參的值其實就是實參決定的 換句話說,每次調(diào)用函數(shù),?形參都會被重新初始化或者說賦值 這樣的話,?用static就沒什么意義了,以為完全沒機(jī)會保留上次的值,必然會被重寫的。? 既然沒意義,C就規(guī)定了,形參不許static
形參:形式上的參數(shù),用完就扔,是系統(tǒng)運行中的一個臨時變量,因此不能定義成static型變量 只有全局變量、局部變量才可以這樣定義
形式參數(shù)調(diào)用動態(tài)存儲方式,不是靜態(tài)變量所以不能用static聲明
比如,不能把下面的func函數(shù)的參數(shù)a聲明為static變量
void?func(static?int?a);??//?這是錯的!
楊阿雪 提問者
onemoo 回復(fù) 楊阿雪 提問者
舉報
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
1 回答static修飾形式參數(shù)
1 回答getPeachNumber函數(shù)里面的形參沒有定義變量類型
1 回答可不可以說定義函數(shù)括號中的都是形參?
1 回答自定義函數(shù)里面的變量與形參
2 回答函數(shù)參數(shù)為什么可以不定義類型?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-07-26
假如你寫了代碼
函數(shù)調(diào)用總不能是一次吧,有可能很多次。
代碼“static int a”在翻譯單元(翻譯單元:源代碼以及包含的所有頭文件)中只會被執(zhí)行一次,
當(dāng)函數(shù)第二次調(diào)用的時候,代碼“static int a”不會被執(zhí)行,也就不會聲明一個形式參數(shù),所以就不能將main函數(shù)中的變量的值傳遞給被調(diào)函數(shù)。當(dāng)形參代碼中沒有static時,每次調(diào)用函數(shù)的時候,就可以重新聲明一個局部變量。
我是這樣理解的。
2018-05-13
如果你聽不懂的話呢,換句話說
2018-05-13
2017-09-07
形式參數(shù)調(diào)用動態(tài)存儲方式,不是靜態(tài)變量所以不能用static聲明
2015-10-06
比如,不能把下面的func函數(shù)的參數(shù)a聲明為static變量