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