將靜態變量作爲參數傳遞給函數會有什麼問題嗎?該程序打印1 0.所以,靜態變量也像平常一樣按值傳遞?將靜態變量作爲參數傳遞給函數
#include<stdio.h>
int main()
{
static main;
int x;
x=call(main);
printf("%d %d",x,main);
}
int call(int address)
{
address++;
return address;
}
將靜態變量作爲參數傳遞給函數會有什麼問題嗎?該程序打印1 0.所以,靜態變量也像平常一樣按值傳遞?將靜態變量作爲參數傳遞給函數
#include<stdio.h>
int main()
{
static main;
int x;
x=call(main);
printf("%d %d",x,main);
}
int call(int address)
{
address++;
return address;
}
是,靜態變量被傳遞,就像任何其他變量。
但我希望你有一些編譯錯誤,當你命名與函數相同的名稱變量。
我不喜歡這個措辭。變量不會超過傳遞的表達式。 – 2012-12-12 06:25:34
這是個問題。只有變量的值被壓入堆棧並且函數獲得副本在這裏似乎沒有幫助。 –
「靜態變量像任何其他變量一樣被傳遞」仍然沒有改進或澄清而被嚴格地表述。 – 2012-12-12 06:27:05
變量傳遞與靜力學沒有區別。
注意,你需要在你的代碼的類型:static int main;
而且我也不會命名變量main
,因爲這可能是一個保留關鍵字。
'main'不是保留標識符,您可以使用它來聲明變量。 – ouah
請注意,C使用按值調用* everything *。改變通話中的參數不會成爲任何事情。 – fuz