相同作用域下是不可以同名的。
創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)四川電信機(jī)房托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
不同作用域,可以同名。
比如 a文件中有個(gè)m函數(shù),在B文件中, 可以定義m局部變量。
你這種就是不允許的。
在C語言中,相同作用域范圍的局部變量不可以同名。所以,在不同作用域下,可以出現(xiàn)局部變量同名的情況。
1 在不同函數(shù)中。
函數(shù)不同,局部變量完全無關(guān),自然可以使用相同的名字。
2 在同一函數(shù)中,但作用域不同。
局部變量的作用域是定義位置,到所在大括號(hào)結(jié)束。
所以只要兩個(gè)局部變量屬于不同的大括號(hào)中,就可以同名。
比如
void?func()
{
int?a;
while(1)
{
int?a;
}
for(;;)
{
int?a;
}
}
這里面,第一個(gè)a的作用域包含了第二個(gè)和第三個(gè),而后兩個(gè)之間作用域不相關(guān)。三個(gè)a分別屬于三個(gè)不同的大括號(hào),可以同名。
不行。自定義函數(shù)名可以與庫函數(shù)名重名,且優(yōu)先選擇自定義函數(shù),但不能與代碼變量名重名。但自定義函數(shù)中的代碼可以用與這個(gè)函數(shù)名相同的變量名。早期的編譯器是這樣,現(xiàn)在與C++兼容的編譯器如何處理此事,沒試過。
可以。
子函數(shù)里的變量只在這個(gè)函數(shù)內(nèi)有效,并且忽略其外部的同名變量。
是的!不可以,不光C不行,C++也不行,我認(rèn)為其它語言也不可以,如果函數(shù)和變量同名在編譯的時(shí)候如何判斷用的是函數(shù)還是變量呢?PS:函數(shù)在不寫函數(shù)調(diào)用符號(hào)時(shí)指的是函數(shù)的指針,我想這你也應(yīng)該清楚。
C++編程時(shí)最好不要將變量名與函數(shù)同名,否則經(jīng)常出現(xiàn)一些二義性錯(cuò)誤。比如在主函數(shù)中的choice,編譯器將它理解為是函數(shù)名而不是變量名,這樣一來在參數(shù)中填入一個(gè)函數(shù)名,就和chocie的聲明不一致了,所以就出錯(cuò)了。