對個文章的總結:嚴重聲明:C語言中不存在數組的類型!它僅僅是一個概念!

來源:互聯網
上載者:User

http://bbs3.chinaunix.net/viewthread.php?tid=1631299這篇文章講到了C語言指標的理解,樓主雖然理解了指標,但是說話有點偏激,觀點不完全正確。

C語言中不僅不存在數群組類型,也不存在char, short, int, long, float, double等等這些類型,非要說C存在一種類型,那也可以說只有一種類型:記憶體段。何為記憶體段?就是一塊記憶體,暫時稱為raw_piece.
為什麼說C是一種無類型或者弱類型的語言?因為我們的電腦對待記憶體就是無類型的。
進階語言中的類型,可以在運行時取得該類型對象的屬性,比如長度、元素個數等等,因為這些屬性儲存在了對象本身內部。
在C中,我們可以用struct來構造類似進階語言的這種資料類型。
在物件導向的進階語言中,一直無法完美的統一類類型 (class)和內建類型(整形,浮點型等),只好採取打包(box)和解包(unbox)等特殊方法來在必要時把內建類型封裝成類類型,在不需要時再還原回來。。。
其實這有必要嗎?我們有必要定義那麼多複雜的類型規則嗎?我們的語言,應該像C, 就一種類型:raw_piece,你想要什麼樣的類型,都可以從raw_piece構造出來。比如raw_piece(1)當作字元型,raw_piece(4)當作整形,raw_piece(sizeof(struct.....))當作複雜類型。。。。當然,函數庫可以預先構造一些經常用到的類型,以方便使用。
我們的程式設計語言應該簡潔,我們的世界應該簡單,整個宇宙說不定只有一個定理。。愛因斯坦晚年曾經想把宇宙中的4種力(強力、弱力、電磁力和萬有引力)統一成一種,這就是一種追求簡單的境界。
我認為C語言還是過於複雜,C99中引入的一些現代特性根本沒有必要,完全可以通過重新定義C的某些特性,通過修改庫函數的定義,在不改變語言介面得情況下來滿足現代需要
C需要的是一個更多功能的函數庫,,只需把現在進階語言種常用的類型、特性、功得能等也納入C的標準庫,那就完全可以取代當今大部分新的語言。C是通過庫函數來擴充其功能的,這個設計理念相當優秀!

現摘要有關評論如下

1.C語言的數組名不是指標,說它代表一個地址更準確些。sizeof數組名的時候可以得到數組大小

2.c是弱類型,c++強型別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.