真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語(yǔ)言和C++的區(qū)別

概念:

鐘樓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

C語(yǔ)言是一門面向過程的計(jì)算機(jī)編程語(yǔ)言,與C++、Java等面向?qū)ο缶幊陶Z(yǔ)言有所不同。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。C語(yǔ)言描述問題比匯編語(yǔ)言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語(yǔ)言相當(dāng)。C語(yǔ)言一般只比匯編語(yǔ)言代碼生成的目標(biāo)程序效率低10%~20%。因此,C語(yǔ)言可以編寫系統(tǒng)軟件。

C++是C語(yǔ)言的繼承,它既可以進(jìn)行C語(yǔ)言的過程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++擅長(zhǎng)面向?qū)ο蟪绦蛟O(shè)計(jì)的同時(shí),還可以進(jìn)行基于過程的程序設(shè)計(jì),因而C++就適應(yīng)的問題規(guī)模而論,大小由之。

C++不僅擁有計(jì)算機(jī)高效運(yùn)行的實(shí)用性特征,同時(shí)還致力于提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計(jì)語(yǔ)言的問題描述能力。

1、關(guān)鍵字

藍(lán)色標(biāo)注為C語(yǔ)言關(guān)鍵字,C++繼承了C語(yǔ)言的所有關(guān)鍵字,以下紅色標(biāo)注為C++中含有但C語(yǔ)言沒有的關(guān)鍵字(根據(jù)c++98中提出C++包含63個(gè)關(guān)鍵字) 
C語(yǔ)言和C++的區(qū)別

2、源文件區(qū)別 
C語(yǔ)言文件后綴為.c,c++原文件名后綴為.cpp 
如果在創(chuàng)建源文件時(shí)什么都不給,默認(rèn)是.cpp 
3.返回值不同 
C語(yǔ)言中,如果一個(gè)函數(shù)沒有指定返回值類型,默認(rèn)為int類型,并返回一個(gè)隨機(jī)數(shù),一般為0XCCCCCCCC 
在C++中,如果函數(shù)沒有返回值則必須指定為void型,否則編譯不能通過 
4、參數(shù)列表 
在C語(yǔ)言中,函數(shù)沒有指定的參數(shù)列表時(shí),默認(rèn)可接收任意多個(gè)參數(shù) 
在C++中,有嚴(yán)格的參數(shù)類型檢測(cè),沒有參數(shù)列表的函數(shù),默認(rèn)為void,不接收任何參數(shù)。 
缺省參數(shù) 
缺省參數(shù)是聲明和定義時(shí)函數(shù)的參數(shù)指定一個(gè)默認(rèn)值。在調(diào)用該函數(shù)時(shí),如果沒有指定實(shí)參則采用默認(rèn)值,否則使用指定的實(shí)參。 
如下代碼:

#includeusing namespace std;void test(int a = 1)
{    cout << a << endl;
}int main()
{
    test();
    test(10);//輸出的結(jié)果是1
    return 0;//函數(shù)輸出結(jié)果是10}

而缺省參數(shù)是分為兩類的,一類是全缺省,一類是半缺省。 
首先是全缺省,全缺省參數(shù)所有參數(shù)都有默認(rèn)值,如果沒有手動(dòng)傳參,那么編譯器會(huì)使用默認(rèn)參數(shù)列表中的參數(shù)。但是這里值得注意的是,如果傳參的時(shí)候只傳了部分參數(shù),那么該值會(huì)被從左至右匹配。 
代碼示例:

#includeusing namespace std;void test(int a = 1,int b = 2, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}int main()
{
    test();//1 2 3
    test(10);//10 2 3
    test(10, 20);//10 20 3
    test(10, 20, 30);//10 20 30
    return 0;
}

半缺省參數(shù)代碼演示:

void test(int a ,int b = 2, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}void test1(int a, int b, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}

其中test函數(shù)至少傳一個(gè)參數(shù),test1函數(shù)至少傳兩個(gè)參數(shù),函數(shù)才可以正常運(yùn)行。

注意:  
帶缺省值的參數(shù)必須放在參數(shù)列表的最后面。因?yàn)閭鲄⑹菑挠蚁蜃蟮摹? 
缺省參數(shù)不能同時(shí)在函數(shù)聲明和定義中出現(xiàn),只能二者留其一。  
缺省值必須是常量或者全局 
變量。  
C語(yǔ)言并不支持缺省。 
5、C++支持函數(shù)重載,C語(yǔ)言不支持 
在實(shí)際開發(fā)中,有時(shí)候我們需要實(shí)現(xiàn)幾個(gè)功能類似的函數(shù),只是有些細(xì)節(jié)不同。例如希望交換兩個(gè)變量的值,這兩個(gè)變量有多種類型,可以是 int、float、char、bool 等,我們需要通過參數(shù)把變量的地址傳入函數(shù)內(nèi)部。在C語(yǔ)言中,程序員往往需要分別設(shè)計(jì)出三個(gè)不同名的函數(shù),其函數(shù)原型與下面類似:

void swap1(int *a, int *b); //交換 int 變量的值
void swap2(float *a, float *b); //交換 float 變量的值
void swap3(char *a, char *b); //交換 char 變量的值
void swap4(bool *a, bool *b); //交換 bool 變量的值

但在C++中,這完全沒有必要。C++ 允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function Overloading)。借助重載,一個(gè)函數(shù)名可以有多種用途。

參數(shù)列表又叫參數(shù)簽名,包括參數(shù)的類型、參數(shù)的個(gè)數(shù)和參數(shù)的順序,只要有一個(gè)不同就叫做參數(shù)列表不同。

#include using namespace std;//交換 int 變量的值void Swap(int *a, int *b){int temp = *a;
*a = *b;
*b = temp;
}//交換 float 變量的值void Swap(float *a, float *b){float temp = *a;
*a = *b;
*b = temp;
}//交換 char 變量的值void Swap(char *a, char *b){char temp = *a;
*a = *b;
*b = temp;
}//交換 bool 變量的值void Swap(bool *a, bool *b){char temp = *a;
*a = *b;
*b = temp;
}int main(){//交換 int 變量的值int n1 = 100, n2 = 200;
Swap(&n1, &n2);cout<

運(yùn)行結(jié)果: 

200, 100 
56.93, 12.5 
B, A 
1, 0

重載就是在一個(gè)作用范圍內(nèi)(同一個(gè)類、同一個(gè)命名空間等)有多個(gè)名稱相同但參數(shù)不同的函數(shù)。重載的結(jié)果是讓一個(gè)函數(shù)名擁有了多種用途,使得命名更加方便(在中大型項(xiàng)目中,給變量、函數(shù)、類起名字是一件讓人苦惱的問題),調(diào)用更加靈活。

在使用重載函數(shù)時(shí),同名函數(shù)的功能應(yīng)當(dāng)相同或相近,不要用同一函數(shù)名去實(shí)現(xiàn)完全不相干的功能,雖然程序也能運(yùn)行,但可讀性不好,使人覺得莫名其妙。 
 注意,參數(shù)列表不同包括參數(shù)的個(gè)數(shù)不同、類型不同或順序不同,僅僅參數(shù)名稱不同是不可以的。函數(shù)返回值也不能作為重載的依據(jù)。

函數(shù)的重載的規(guī)則:

(1)函數(shù)名稱必須相同。

(2)函數(shù)的返回類型可以相同也可以不相同。

(3)僅僅返回類型不同不足以成為函數(shù)的重載。 
6、指針和引用 
C語(yǔ)言中函數(shù)傳參方式有兩種:傳值和傳址 
以傳值方式,在函數(shù)調(diào)用過程中會(huì)生成一份臨時(shí)變量用形參代替,最終把實(shí)參的值傳遞給新分配的臨時(shí)形參。它的優(yōu)點(diǎn)是避免了函數(shù)調(diào)用的副作用,卻無(wú)法改變形參的值。如果要改變實(shí)參的值,只能通過指針傳遞。 
指針可以解決問題,但是不安全,因此在C++中引入了引用。 
引用:引用不是新定義的一個(gè)變量,他是原變量的一個(gè)別名,編譯器不會(huì)為引用變量開辟空間,它和他引用的變量共用同一塊內(nèi)存空間。 
類型& 變量(對(duì)象名)=引用變量 
int &num1=num0; 
引用特性;:
(1)引用定義時(shí)必須初始化 
(2)一個(gè)變量可以有多個(gè)引用 
(3)引用一旦綁定一個(gè)實(shí)體就不能改變?yōu)槠渌兞康囊?nbsp;
//指針和引用的區(qū)別 
引用不可以為空,但指針可以為空 
引用不可以改變指向,對(duì)一個(gè)對(duì)象”至死不渝”;但是指針可以改變指向,而指向其它對(duì)象 
引用的大小是所指向的變量的大小,因?yàn)橐弥皇且粋€(gè)別名而已;指針是指針本身的大小,4個(gè)字節(jié)。

7、命名空間 
在C++中,變量、函數(shù)和類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局命名空間中,會(huì)導(dǎo)致很多沖突,使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱進(jìn)行本地化,以避免命名沖突或者名字污染,namespace關(guān)鍵字的出現(xiàn)就是解決這種問題。而C語(yǔ)言中沒有。 
8、輸入與輸出 
cout代表c++的輸出流 
cin代表c++的輸入流 
它們都是在頭文件“iostream”中定義。 
“cout”必須與”<<”一起使用,“<<”起到插入的作用。 
在一條語(yǔ)句中可以多次使用“<<”輸出多個(gè)數(shù)據(jù)。 
如:cout<

#include using namespace std;int main()
{int a,b;cout<<"請(qǐng)輸入a,b的值"<>a>>b;cout<<"輸出a的值"<

感謝大家的閱讀,大家現(xiàn)在知道C語(yǔ)言和C++的區(qū)別了嗎?


分享文章:C語(yǔ)言和C++的區(qū)別
URL鏈接:http://weahome.cn/article/ihicjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部