為什麼201X年還有很多學計算機的不知道C99規範起可以在調用函數時用&傳引用?
01-06
n 這樣傳引用的方式,在ISO C89裡面是不支持的,C++開始使用這種方式。
從ISO C99規範起把這種很方便的語法接納為C語言規範,ISO C11就更不用說了。昨天一個QQ群裡面有人吐槽說他正在考計算機研究生,看嚴蔚敏《數據結構(C語言版)》的 n 寫法很彆扭,覺得這不是C語言。我一搜,看到知乎也有人吐槽說 n 方式代碼在C編譯器編譯通不過。
我就納悶了:這年頭還有不支持C99「n 傳引用方式」的C編譯器嗎?通不過?我知道完整支持ISO C99的編譯器幾乎沒有,但是各家都支持C99的主要特性;另外確實嚴蔚敏寫那本書第一稿的時候ISO C99還沒出來,但是今年是2017年。2017年計算機專業將要讀碩士的,居然學C語言時仍然不學 n 傳引用語法?我們的電腦和手機程序就是由這樣一群(未來的)碼農寫出來的?
你錯了,C語言不能傳引用,對,不能,C99也不能,C11也不能你看的書錯了,你把後綴名改成C再試試看不服我們翻標準
題目中反覆提到C語言標準的各個版本,我懷疑題主其中的任何一個版本都沒有認真看過。
特意搜了一遍C99語法參考部分,出現了的地方就只有這些:題主,不信謠不傳謠是現代社會公民的優良品質。
如果我是你計算機老師,罰你回去再看一遍C99規範。
如果這理論是你老師說的,把他名字掛出來,我保證知乎網友不罵死他。看了看題主之前的唯一一個回答,也就是這個問題的來由。
雖然很討厭題主這樣「學了點if else就以為自己會編程、那些自學計算機/科班的都是渣渣」的朋友,但還是有點心疼題主……本來這個問題可能就這樣無人問津,可惜幾個大V回答了這個問題……
毫無疑問,接下來題主會被各種嘲諷,希望題主堅強。也希望題主一覺醒來記得匿名,然後卸載知乎清凈幾天,過幾天就沒人還會記得這個問題了,我也就不貼題主之前一個回答也不艾特大胸弟了。BTW,還是要貼一張圖23333不管是不是釣魚,總之看到標題就很同情題主。。
引用傳值是C++的語法,和C99沒有半點關係.只能說目前的C++標準中集成了C99標準的內容,所以在大多數情況下在C++源文件裡面寫C99代碼不會導致問題.說VS可以的,你們可以去檢查一下,你們文件擴展名是c還是cpp
https://www.zhihu.com/question/24590372/answer/150898366
看題主的意思是「你們這群讀計算機的連我這個化學博士都不如?」
我們的化工產品就是由這樣一群化學博士研究出來的?(╯°Д°)╯︵┻━┻活久見
題主你用的是嚴語言,不是C語言。你犯了某些跟譚語言使用者差不多的錯誤
C語言是沒有引用這個說法的,引用在C++才有。
關於嚴蔚敏的《數據結構(C語言版)》答案和題目無關,我只是想給嚴慰敏的那本書澄清一下:
書沒有錯,你和你的同學一定沒有認真看第一章前幾頁的說明,上面明確指出本書用的語法是類C語言,是 C語言的超集。除了引用,書中還有其他不屬於C語言的內容。我可能寫的是假的C語言
我很同情題主的,寫了這麼多,本以為能搞個大新聞,結果被活生生的扇臉。知乎上,尤其是計算機類的話題,千萬要謹慎,尤其是這種質疑類的問題。
你到底懂不懂指針和引用的區別?傳實參的時候是用來取指針的,形參列表裡的才是引用標誌。顯然c語言從來都不能在形參列表裡寫。那是c++。
C99,C++11/14/17算什麼,像楊駿的問答 - 知乎 這種,南開大學計算機本科+碩士畢業的,除了Matlab以外別的語言統統都不會寫的,不得不被迫轉行去美國讀數學PhD的,還大有人在呢。
題主是不是從csdn下的iso標準。。。。。
依我拙見,c標準通篇和引用搭邊的詞叫dereference了,這個是解引用不是引用啊
年輕人,總想。。是啊,我怎麼也不知道……
c語言我只知道值傳遞.....指針傳遞也算是值傳遞的一種~
推薦閱讀:
※適用於個人用戶的最佳數據備份方案有哪些?
※學習知識的時候系統學習的利弊?
※二進位是如何將加減乘除變換為加法實現的?加法是如何由邏輯運算與、或、異或來實現的?
※決定論可以被證偽嗎?
※計算機碩士期間,如何更好地成長和「變得優秀」?