C 語言比 C 更強大嗎?

時間 2021-05-07 01:44:54

1樓:avoidant

你意思c++在沒有刪減c原有能力的基礎上,向c裡新增了那麼多東西,然後沒變強反而變弱了?

我想問哪個語言更強的人一般關注的是以下幾個方面:

編寫程式是否容易

程式的執行速度是否夠快

適用的開發領域是否夠廣

對於以上關注點,c++都不弱於c。至於強不強於c,主要看人能不能把c++的威力用出來。

c確定比c++強的地方:

編譯速度

學習成本

2樓:

首先,圖靈完備的語言在計算能力上是等價的

最關鍵的一點是如何定義"強大",其實更多的時候,我們說一門語言強不強大是看這門語言是否能夠更方便的滿足你當前的需求,從可計算性理論的角度講C語言和C++二者都是圖靈完備的語言,他們的計算能力都是和圖靈機相當的。更通俗地可以這樣理解:

凡是C語言可以計算的問題,C++都可以計算凡是C++可以計算的問題,C語言都可以計算當然,通常的程式語言都是圖靈完備的,各個程式語言差別在於執行速度、以及每種語言都有自己最適合的場合或者說對於某種應用或者某個需求來說,用某種特定的語言最為方便。

3樓:mingrc

c++較於c多了這幾樣東西,過載,引用和類,其中過載完全可以在c中寫成兩個函式,引用可以用指標代替,類也可以用結構體以及一系列結構體函式代替,可以說很多實現c++能做的,c也能做,但是c++給程式設計師提供了更為方便的表達方式。而且c++也能在微控制器等地方應用,並不比c差。所以可以說c++比c功能相近但更為方便,因而認為更為強沒問題。

4樓:雨霖鈴

其實C和C++比起來並不存在高階與不高階的問題,存在即合理。無非是乙個面向過程,乙個物件導向罷了。只是說目前的多數大型化程式都是物件導向的程式設計,而面向過程則將非常繁瑣。

而面向過程對於許多小型程式而言又擁有簡便的巨大的優勢。同時在物件導向的程式設計的過程中,部分的過程也需要C來進行完善。所以雖然C++是相對C的公升級產品,但兩者作為C語系的兩大支柱,都是非常重要的語言。

5樓:冒泡

C++實現的os也不是沒有,C++大體上相容C,那我只用C with class,不就能實現所有C能做到的東東了麼,而且還可以在需要用class的時候更方便一點點,或許C++還是不夠好,但也別跟它的「子集」來比嘛

當然了,說完全子集是不對的,不過差異的那些一般也不是很重要,比如ub的規定差異上衍生的一些奇技淫巧,印象中還沒有誰來大規模使用

6樓:「已登出」

在今天看來,這種話題已經很落後的思想了,如今 C和 C++ 它倆能分開嗎?它倆早已在一起,你們卻要分開它們,古話說得好,寧拆一座廟,不毀一樁婚。

7樓:

在大牛眼裡c++就是c的語法糖,同時像繼承類這種概念大牛覺得既然浪費記憶體又容易bug,就像建構函式初始化,如果建構函式發生異常這玩意兒就是個既初始化又沒初始化的狀態你說咋收拾這個物件。構造和初始化拆開寫反而寫起來更難看,再比如oop這種思想需要上下文支援,你要改乙個地方很可能會發現要把上面父類都改一遍,如果剛接觸專案的人想掌握整個東西就很麻煩。需要花很多時間,所以大牛都是願意用c,因為c++能幹的他用c都能幹並且更簡潔。

像我等凡夫俗子就老老實實用c++ 和 stl就好了

8樓:

首先,不會,C語言並不比C++強大。

因為C++是相容C++的語法的,所以即使我用C++,也可以用就C的規則來寫程式,並把它當成C++程式來編譯也不會有問題。

9樓:大波羅

從支援的功能來說C++當然比C強大。但是實際使用來說,C簡單直白,上手快。雖然也有很多坑,也是填坑也相對容易。

C++夠強大,但是語法規則過於複雜,如果遇上半吊子的人,經常被坑的不要不要的。如果團隊裡面都是C++大牛,那請隨便玩!

10樓:Galaxy

C++是C語言的加強,是一種更好的C語言

C++是以C語言為基礎的,並且完全相容C語言的特性

學習C++並不會影響原有的C語言知識,相反會加深對C的認知,學習C++可以接觸到更多的軟體設計方法,深入理解物件導向的方法原理,並帶來更多的機會。

11樓:scottcgi

首先,我有兩種互相矛盾的觀點。

第一,經過大量的程式設計訓練和思考之後,幾乎所有人都會感受到一點,程式設計重要的是思想的輸出,工具只是想法的表達。無論使用什麼語言,厲害的思想總能找到它自己的基於特定程式語言的最佳表現形式。這麼看強大只存在於思想。

第二,依然經過大量的程式設計訓練和思考之後,會體會到,程式語言是一種思想的延伸。就像人類語言和人類思想的關係一樣。每一種人類語言都代表一種世界觀,人生觀和思維模式,從而發展出的文化也非常不同。

語言會影響思維,程式語言也是。這麼看更好的程式語言,會更容易激發人的創造力。

其次,程式語言強大是什麼,我的理解是,一種心理感受。程式語言讓人更容易表達自己的想法,讓人感覺到輕鬆簡單,讓人充滿靈感,就會給人強大的心理感受。這個心理感受非常的因人而異,很多因素都會影響。

但如果一種程式語言,讓一些人受盡心理折磨,讓另外一些人心情舒暢,又以誰的標準來定義呢。

最後,我認為一種程式語言總是在不斷改進,變化,增加新功能,說明它還沒有找到一種純粹簡單的模式與應對外界層出不窮的變化。不能說不好,只能說在變的更好的路上,最終那些變化多端的形式,都會總結成統一而簡單的思想。所以,我認為c++的強大,是存在於心情舒暢和受盡折磨兩個陣營的人之間的爭論。

我覺得有時候,消減掉一些東西就會變的更加強大,是化繁為簡的資訊抽象,能夠更容易找到內心想要的東西,less is more。

c和c++誰更強大,人在挑選工具,工具也在挑選人。安利一下我用C語言開發的遊戲引擎,和c++的遊戲引擎,會有完全不一樣的感受,並且給出了用C開發大型複雜專案的解決方案,不遜色於c++。Talk is cheap, code is here scottcgi/Mojoc

12樓:乙個愛狗的男生

關於C是否比C++強大?

你要想想C相當於父親,C++相當於兒子。

父親在一開始肯定是比兒子強大的,並且還要在各個方面照顧兒子。

隨著時間的推移,兒子漸漸長大,在很多方面也是青出於藍而勝於藍。

兒子可以更快更好的完成以前父親做的那些事情。

不過在一些老輩眼裡,一些特殊的事情,他們總有自己的一套解決方案。

所以,這個問題基本上很難回答,各自強大的方向不同吧!

13樓:

「是否強大」與「是否適合」沒有關係,但很多人往往混為一談。

舉個最簡單的例子,論戰鬥力,老虎比老鼠強大,但老鼠能進的洞,老虎能進嗎?

所以,把C++當成老虎,把C語言當成老鼠,把作業系統核心當成乙個內部帶有複雜迷宮的小洞,就能明白是怎麼回事了。

14樓:朋克雪球兔

我看來不是的。

主要是cpp完全相容c,所以cpp必然是比c更強大。

乙個語言除了基本的執行時,語法規則之外,還包括對應的標準庫。雖然cpp的標準庫很被詬病,但相對c也是要完善一些。

純c在我看來,優勢就在於足夠簡潔,那就相對容易理解,不至於像cpp那樣經常碰到不熟的語法需要google。以至於我甚至可以知道編譯器做的所有事,生成的彙編也都在掌控之中。除錯起來就方便很多。

cpp優勢在於很強大,支援的語法特性很多,所以你可以在這個基礎上玩出各種各樣的花樣。但出了問題…你應該祈禱它最好不要出問題。

15樓:暮無井見鈴

我說下個人認為 C 可以比 C++ 強大的地方:

1) 作業系統通常都能欽定 C 風格的 ABI ,但對 C++ 風格無能為力。

2) OO 實現其實有很多種模式。 C++ 可以說取一種最簡單的,但對其他模式寫起來就比較麻煩。而 C 實現各種 OO 模式看起來更平等一些。

3) 某些型別細節。例如 VLA (變長陣列)通常實現分配於棧上,C++ 實現一般無能為力;指代初始化器能讓全公開 struct 、陣列的初始化更清晰;伸縮陣列成員在特定情況能摳下幾個填充位元組,而標準 C++ 也是無能為力等。

4) (屬於某些個人愛好)譬如 C 的 struct 要求全部顯式操作,而 C++ 引入更多隱式操作等。

16樓:gkmail

c當然不比c++功能強大。但對很多大型專案來說,比開發語言特性強大更重要的是防止這些特性被濫用。

在你準備開始乙個專案時,如果你想選c++做主要開發語言,你需要先做乙個特性限制列表,以防後期踩雷。

1.採用哪個版本的c++標準。如果專案需要跨平台,跨編譯器,請謹慎採用新標準的新特性。

2.如果專案需要跨平台,請謹慎使用或禁用stl。

3.在與第三方庫互動和對效率要求高的場景下禁用異常。

4.禁止操作符過載防止語義混淆。

......

如果你想省去麻煩躲開所有雷區,你的選擇就是c語言。

17樓:

解決問題方面,C 和 C++ 是差不多的

使用語言特性玩花方面 C 離 C++ 還有很大的距離

吹噓自己語言多麼厲害的方面 C 程式設計師遙遙領先

18樓:任衛

我不回答別的,只說:作業系統並不是只有C寫的。

linux核心是C寫的,但作業系統不僅僅只有個核心。Gnome/ KDE / QT / Windows都是包含C++在內的多種語言寫成的。

C 完全相容 C 語言嗎?

黑洞電網 基礎語法和庫函式基本相容,不相容的是很多細節。定義函式,C 的形參說明必須放在括號裡,比如fun int x C語言可以放在函式頭的下面。C中的字串函式可以直接通過包含stdio.h來用,C 都放到cstring檔案裡了,不在預處理時候匯入會報錯說你的strlen,strcat這些沒定義。...

李淵比李世民更強大嗎?

Mr.Cat 還是那個臉皮厚度的問題上確實是他比李世民強大很多自己瞧不起漢高祖 1.面對東突厥南下 貞觀年間頡利突利也就率領十幾萬騎兵 燒了長安,遷都襄陽吧 武德年間可還沒打啥大仗 2.看不起漢高祖蕭何需要親自苦哈哈的四處征戰打天下自己龜縮在長安靠兒子了不起?漢高祖 面對四十萬匈奴騎兵,自己帶著三十...

學C 之前要學c語言嗎?

同時學。既要掌握printf scanf fprintf fscanf,也要掌握istream ostream ifstream ofstream.學著學著你就會發現,c語言和c 沒啥不同,知識點是互通的 大碼猴 C語言是面向過程程式設計 C 是物件導向程式設計 先了解面向過程再了解物件導向 建議先...