亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

C程序函數的形式參數不可以說明為static型變量

C程序函數的形式參數不可以說明為static型變量

怎么理解?

正在回答

5 回答

假如你寫了代碼

void?func(static?int?a);

函數調用總不能是一次吧,有可能很多次。

代碼“static int a”在翻譯單元(翻譯單元:源代碼以及包含的所有頭文件)中只會被執行一次,

當函數第二次調用的時候,代碼“static int a”不會被執行,也就不會聲明一個形式參數,所以就不能將main函數中的變量的值傳遞給被調函數。當形參代碼中沒有static時,每次調用函數的時候,就可以重新聲明一個局部變量。

我是這樣理解的。

0 回復 有任何疑惑可以回復我~

如果你聽不懂的話呢,換句話說

因為C語言規定?不可以用static?做形參
為什么這么規定,是因為沒必要
靜態局部變量的特點,是生存周期不被函數限制
每次調用函數時,靜態變量還是上次退出的值。?除此外?和普通局部變量沒區別
而參數,?每次調用的時候,?形參的值其實就是實參決定的
換句話說,每次調用函數,?形參都會被重新初始化或者說賦值
這樣的話,?用static就沒什么意義了,以為完全沒機會保留上次的值,必然會被重寫的。?
既然沒意義,C就規定了,形參不許static


3 回復 有任何疑惑可以回復我~
形參:形式上的參數,用完就扔,是系統運行中的一個臨時變量,因此不能定義成static型變量

只有全局變量、局部變量才可以這樣定義


0 回復 有任何疑惑可以回復我~

形式參數調用動態存儲方式,不是靜態變量所以不能用static聲明

1 回復 有任何疑惑可以回復我~

比如,不能把下面的func函數的參數a聲明為static變量

void?func(static?int?a);??//?這是錯的!


0 回復 有任何疑惑可以回復我~
#1

楊阿雪 提問者

哦,只能是int a 唄?
2015-10-08 回復 有任何疑惑可以回復我~
#2

onemoo 回復 楊阿雪 提問者

是,這個代碼中只需 int a 即可。 static不能用于修飾函數參數。
2015-10-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

C程序函數的形式參數不可以說明為static型變量

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號