。。。
論強大,都屬於通用型高級編程語言,都很強大。
問題無解。
這裏放壹個特性對比(C、C#、C++):
C語言誕生得非常之早,C語言的目標就是比匯編方便易用,同時不要損失匯編的表達能力。所以C語言可以看成是“高級的匯編”語言。C語言的源代碼基本上可以非常容易地對應到匯編代碼,而且可以不需要什麽運行時環境的支持。C的特點,簡單容易編譯,靈活貼近底層。所以壹直到現在,壹些需要直接和硬件打交道的軟件都還是用C語言寫的。總之C語言編寫簡單,更接近底層,直觀得管理數據存儲。
C#語言抽象層次高且基本只有壹種(面向對象的),運行時支持豐富(垃圾回收等),類庫豐富。所以它就是好學,易用,同時兼顧運行效率,盡量優化。C#與Java類似,編譯後得到的還不是機器代碼,而是運行在虛擬機中的元指令。它對安全性做了更多的考慮,沒有指針,不能直接操作內存,自動實現內存管理。
最直觀的區別就是:C#沒有指針類型,內存自動管理;C#有字符串類型,C語言沒有,靠字符數組或指針來存字符串;C#中switch後可跟string類型,並且會禁止所有switch..case語句的失敗情形,除非case語句後是空格,否則執行了前壹個case語句就算沒有break也會停止執行後面的case語句;
C#中定義數組時,數組長度可以是變量,而C語言中定義時數組長度只能是壹個常量表達式,動態分配內存需要用到molla函數;C語言中沒有集合類型;C#有foreach可用於數組和集合的遍歷等...
總的來說,C語言更底層,很多東西都需要自己DIY,但極其靈活,功能十分強大,其精華在於指針,直接管理數據存儲,面向過程編程,很多操作系統和系統軟件都是用C語言寫的;C#則更容易上手,很多東西都已經寫好,直接使用即可,避免了內存的直接管理,面向對象編程;正如壹個冷笑話所講:“C語言:指針最好用。
C++:最好不用指針。 C#:指針是什麽?”
好文要頂
關註我
收藏該文