1樓:與子如初見
可以,區域性變數的生命週期僅僅存在於乙個花括號之內。
2樓:藍很藍
看你在那裡定義了,在函式內定義是可以的,函式外不可以。
3樓:摩羯卡薩諾瓦
可以,區域性變數是可以的,全域性變數是不可以重複的!
c語言 在不同的 .c 檔案中可以定義相同名稱的函式嗎?
4樓:網友
這當然都是不可以的,除非這幾個。c檔案不會相互呼叫,即不同時存在於乙個工程之內,完全獨立沒有關係。
在c語言中,不同函式體內定義的變數可以同名.對嗎
5樓:江小右
可以,這個幾十涉及到變數的作用域了。除了全域性變數,區域性變數的作用域在函式體內。
另外哪怕同乙個函式體內 定義如下變數也是ok的:
int i =1;
for(int i=0;i<5;i++)
for 裡面的i和for 外面的i作用域也是不一樣的。
6樓:
形參是區域性變數沒錯,但是不能在乙個函式內定義另乙個函式。就是說不能巢狀定義函式。main() 這是不行的。
7樓:網友
可以,區域性變數作用於只是在當前的函式體內,該函式體執行結束區域性變數所佔用的記憶體空間就被釋放了。
8樓:溺水的魚
可以,只要保證函式體不同名就可以。
9樓:網友
函式體內定義的變數屬於區域性變數。
可以同名。
10樓:網友
對的,臨時變數無所謂的。
但最好還是不要和全域性變數同名,以免疏忽導致錯誤。
c語言中主函式中定義的變數,呼叫函式里還需要再定義嗎?
11樓:晨曦月殤
c語言中主函式中定義的變數只能在主函式中使用,所以你還得再定義乙個變數。
當然,捏可以把主函式中定義的這個變數傳遞給被呼叫的函式作為引數。
例如void fun(int x)
main()
但是如果你要在被呼叫函式中使用這個變數例如fun()
像這樣,就是錯的,編譯器會報錯,main中定義的變數是區域性變數,只能在main中使用。
你可以在main外部定義乙個變數,這樣在被呼叫函式中也就可以使用了。
c語言中函式宣告中的變數可以和函式定義中的變數不一樣嗎?哪乙個是形式引數?
12樓:網友
從記憶體角度來講,函式引數是一定儲存到棧區的,函式體內定義的變數可以儲存到棧區,比如區域性變數,也可以儲存到靜態資料區,比如static變數。示例如下:
#include #include void f(int a, int b) int main()
c語言可以在不同的原始檔中定義相同名字的全域性變數嗎
13樓:山東路雲
拿vc試啊,剛花了幾分鐘實測了下,不加static,不管是否初始化,都是在鏈結的時候報重定義錯誤,如果加了static, 不管是否初始化,編譯鏈結都沒問題,只是不同的原始檔佔用不同的記憶體,也就是說已經是兩個不同的static全域性變數了。
14樓:網友
可以,因這個不是語法錯誤,一般是邏輯錯誤!而這種錯誤是看程式設計人員要怎麼使用變數的!
15樓:周生
全域性變數。
既然是全域性的,你定義兩個怎麼辦?
16樓:空雪夢見
編譯會通過。
鏈結會失敗。
17樓:
不使用static的時候,兩個不同的原始檔都可以正常編譯,但會出現鏈結錯誤,原因是有兩個地方存在相同的變數,導致編譯器無法識別應該使用哪乙個。
另外,而使用static的時候,你所定義的static變數如果是區域性的話,編譯的時候編譯器會將其重新命名,其他檔案就不會使用到這個檔案的static變數了,這樣就使得只在本檔案內有效;如果是全域性的話,就全域性可見,共享同一塊記憶體空間。
具體細節請參考《c++反彙編與逆向分析》(錢林松),裡面講的很詳細。
如有疑問可以追加問題,歡迎採納,謝謝!
18樓:網友
可以啊!直接新增變數即可。
19樓:春秋幾許隨緣化
區域性的static變數(函式內部的)只是函式內部可見,全域性的static變數(函式外面的)應該是隻有當前原始檔可見。
c語言中的變數名什麼情況下可以用相同的變數名
20樓:葉片舟
不在同乙個作用域內,比如乙個在被調函式,乙個在主函式。
21樓:網友
不同的作用域內可以使用相同的變數名,優先使用小範圍的作用域。
作用域:全域性段、函式段、塊。
1.全域性段定義變數a, main函式中再定義a, 那麼main中函式中定義的a, 看下面例子。
2.塊,由花括號{} 包含的區域。比如if分支體, for,while迴圈體中定義的變數,其作用域是花括號內。
例:#include
int a = 100;
int main(void)
離開塊, 塊中定義的a就不存在了。
printf("a = %d", a); // 還在main函式中, 依然使用main區域性變數a, 50
return 0;}
22樓:cindere鞡
首先呢,你寫的這兩個迴圈別用同乙個變數,會導致錯誤的,然後呢,如果需要在同一內。
個程容序裡邊用名字相同的變數是完全可以的,但是要注意一些地方,記得c教材裡有講作用域的,比如最簡單的就是在不同函式里使用相同名字的變數,但是這個變數必須在這個函式里邊宣告,這樣使用起來互不干擾,完全沒有問題,這就是**塊作用域,那麼,還有一種是當乙個是全域性變數乙個是區域性變數時,也不會互相干擾使用,當沒有使用到區域性變數時,這個區域性變數保持預設值,而全域性變數會隨程式而執行,當程式執行到這個區域性變數所在**塊時,全域性變數儲存當前值,而區域性變數開始執行。
j**ascript中不同的函式定義中可以使用相同的變數名嗎?
23樓:會飛的身體
當然可以,不同的函式中當然可以使用相同的變數名,這不衝突。
c語言中,能定義兩個名相同的,但是引數不同的函式嗎
24樓:軒落_翼
不可以的,c語言翻譯成彙編,函式名中不帶引數的資訊,但是c++翻譯成彙編後,每乙個函式的名字除了包含了函式名,還包含了函式的引數資訊。
C名稱空間裡面,可以定義函式
int32 parse 在c 中,這樣的格式,相當於 前面是類名或名稱空間。例如,c 檔案開頭沒有using namespace std 我們可以這回樣呼叫cin和cout std cout hello,world 如果答要在類a的子類b的成員函式中呼叫類a的成員函式void fun 可以這樣 b ...
c語言中的abs函式,c語言中的abs函式ifabsx1x21什麼意思abs不是返回絕對值嗎
這條語句意思是 如果x1 x2的絕對值等於1,則if的條件成立,此時表示式abs x1 x2 1 的值是1,即條件成立。意思就是判斷x1 x2的差的絕對是不是等於1唄 y zeros fftsize,1 y 20 log10 abs x1 subplot 3,1,2 在matlab中,這些語句都什麼...
關於C語言中陣列的定義,C語言中如何定義陣列
一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...