亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問C,C+和C++它們有什么區別?

請問C,C+和C++它們有什么區別?

絕地無雙 2019-09-03 15:06:47
C,C+和C++它們有什么區別
查看完整描述

3 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

只有C語言和C++語言,沒有C+語言。

1、出現時間不同

C++是C的超集,也可以說C是C++的子集,因為C先出現。按常理說,C++編譯器能夠編譯任何C程序,但是C和C++還是有一些小差別。

例如C++增加了C不具有的關鍵字。這些關鍵字能作為函數和變量的標識符在C程序中使用,盡管C++包含了所有的C,但顯然沒有任何C++編譯器能編譯這樣的C程序。

2、C程序可以省略函數原型,而C++不可以

一個不帶參數的C函數原型必須把void寫出來。而C++可以使用空參數列表。C++中new和delete是對內存分配的運算符,取代了C中的malloc和free。標準C++中的字符串類取代了C標準C函數庫頭文件中的字符數組處理函數(C中沒有字符串類型)。

C++中用來做控制態輸入輸出的iostream類庫替代了標準C中的stdio函數庫。C++中的try/catch/throw異常處理機制取代了標準C中的setjmp()和longjmp()函數。

3、關鍵字和變量不同

在C++中還增加了bool型變量和wchar_t型變量:布爾型變量是有兩種邏輯狀態的變量,它包含兩個值:真和假。如果在表達式中使用了布爾型變量。

那么將根據變量值的真假而賦予整型值1或0。要把一個整型變量轉換成布爾型變量,如果整型值為0,則其布爾型值為假;反之如果整型值為非0,則其布爾型值為真。布兒型變量在運行時通常用做標志,比如進行邏輯測試以改變程序流程。

C++中還包括wchar_tt數據類型,wchar_t也是字符類型,但是是那些寬度超過8位的數據類型。許多外文字符集所含的數目超過256個,char字符類型無法完全囊括。wchar_t數據類型一般為16位。

標準C++的iostream類庫中包括了可以支持寬字符的類和對象。用wout替代cout即可。

4、強制類型轉換不同

有時候,根據表達式的需要,某個數據需要被當成另外的數據類型來處理,這時,就需要強制編譯器把變量或常數由聲明時的類型轉換成需要的類型。為此,就要使用強制類型轉換說明,格式如下:int* iptr=(int*) &table;

表達式的前綴(int*)就是傳統C風格的強制類型轉換說明(typecast),又可稱為強制轉換說明(cast)。強制轉換說明告訴編譯器把表達式轉換成指定的類型。

有些情況下強制轉換是禁用的,例如不能把一個結構類型轉換成其他任何類型。數字類型和數字類型、指針和指針之間可以相互轉換。當然,數字類型和指針類型也可以相互轉換,但通常認為這樣做是不安全而且也是沒必要的。強制類型轉換可以避免編譯器的警告。

5、函數重載

在C++中,允許有相同的函數名,不過它們的參數類型不能完全相同,這樣這些函數就可以相互區別開來。而這在C語言中是不允許的。



查看完整回答
反對 回復 2019-09-07
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

c是老大哥,很多操作系統是他做的。C+沒聽說過,網上查了也沒有c+語言。只有c#,C#是微軟自己開發的語言,c++是在c的基礎上發展而來。C語言面向過程編程的語言;C++面向對象編程的語言。
兩者有本質的區別,其實是完全不同的兩種語言,只不過C++兼容C語言而已。
C#最大的特點就是沒有指針。其中C++則一般看作是對C語言的擴展。因為C語言沒有面向對象的語法結構,而當時業界又迫切需要面向對象的編程特性,所以貝爾實驗室的開發者就為C語言添加了面向對象的結構?,F在C++已經不只是C語言的擴展了,它已經完全可以被看作一種新的編程語言。雖然C語言的特性以及庫函數仍然被C++支持,不過C++擁有自己的獨立的類庫體系,功能相當強大。

C#是微軟開發的一種編程語言,語法類似Java,幾乎就是從Java的翻版。運行原理和Java也類似,也是通過運行時庫的支持運行。不過支持的平臺還很有限。Java幾乎被所有平臺支持,而C#目前只被Windows和Linux支持,Windows下的支持當然是由微軟自己開發的,而Linux下的支持則有MONO支持。實際上,MONO也是把C#應用轉化為Java應用而已,所以本質上,C#仍然只是被微軟自己的操作系統支持。應用平臺受到限制,是它最大的缺點。

C/C++的優點在于與底層比較接近,可以控制的粒度更加精細,是開發系統級應用的最佳選擇。關于跨平臺,C/C++也是很好的語言,因為所有平臺都支持,不同的是,不同平臺支持的實現不同,類庫不同,要編寫跨平臺的程序,需要選擇跨平臺的類庫,如標準類庫,如果標準類庫的支持不夠也只需要附加編寫一個跨平臺的支持類庫。



查看完整回答
反對 回復 2019-09-07
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

c語言是一門相對比較基礎的語言

而c++是一門面向對象的語言

c++中引用了類的概念,和c中的結構體相似

使問題更容易解決,用的更廣/

所以,現在都是象c++邁進的

一個是面向過程的結構的:c

另一個是面向對C++是面向對象編程的,所以它是后來VC及BC的鼻祖,C僅是是一般的過程編程,所以要想有所發展應該是學C++。不過,關鍵要理解什么是“對象”,什么是“過程”。由于C的所有語法在C++中都有,我認為沒有必要再學C,據我所知,在學校中已沒有C的課程。象的:c++



查看完整回答
反對 回復 2019-09-07
  • 3 回答
  • 0 關注
  • 835 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號