為什麼201X年還有很多學計算機的不知道C99規範起可以在調用函數時用&傳引用?

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語言我只知道值傳遞.....

指針傳遞也算是值傳遞的一種~


推薦閱讀:

適用於個人用戶的最佳數據備份方案有哪些?
學習知識的時候系統學習的利弊?
二進位是如何將加減乘除變換為加法實現的?加法是如何由邏輯運算與、或、異或來實現的?
決定論可以被證偽嗎?
計算機碩士期間,如何更好地成長和「變得優秀」?

TAG:計算機 | C編程語言 |