答案是:否
創(chuàng)新互聯(lián)網(wǎng)站建設公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設計、成都網(wǎng)站建設,塑造企業(yè)網(wǎng)絡形象打造互聯(lián)網(wǎng)企業(yè)效應。
c語言中,變量和函數(shù)名稱不允許相同,比如你定義一個函數(shù)int a();那么你的main函數(shù)中,如果int a=a();則會報錯,這是c語言中非常討厭的一點,當然,反對者可能會說:“容易引起名稱混淆,導致不容易維護”,這是很牽強的說法,用現(xiàn)在流行的詞匯叫做:強行為c語言的缺點洗白,c語言的這個限制,極大程度的增加了初學者,尤其是自學者的學習難度,因為初學者不會考慮變量的含義,通常定義aa,bb,cc這樣更利于快速學習,但是出來這個限制,并且不知情的情況下,甚至都不知道在網(wǎng)上如何搜索來解決這個小問題,所以個人覺得這是c的不友好之一
不可以,同一作用域的變量名不允許相同, 不同作用域下的同名變量起作用的是最后一層。
因為定義就意味著給變量分配空間。暫不管重復定義有可能產(chǎn)生空間分配不合理的問題,首先變量名就是一個地址,只不過這個地址是由系統(tǒng)分配的,定義后,地址分出來,存儲空間也被分配出來,變量名--地址就被固定下來。重復定義的話就要分出新地址,分配新的存儲空間,原來的變量名--地址,與后來的變量名--地址,產(chǎn)生沖突,一樣的名字,卻是不同的地址,這是不允許的。
但是這種問題只會出現(xiàn)在標識符的鏈接屬性一樣的情況下,可以簡單的理解為在同一個作用域重復定義是不可以的。如果在兩個函數(shù)里分別定義int a,這種定義是可以的。因為這個a處于不同的作用域,就不算是重復定義了。
以上屬于自己的理解,歡迎指正。