日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言和C+的区别是什么?8个点通俗易懂的告诉你

發(fā)布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言和C+的区别是什么?8个点通俗易懂的告诉你 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有些初學(xué)的同學(xué)傻傻分不清其中的區(qū)別,下面我將詳細(xì)的講解C語言和C++的區(qū)別點(diǎn)幫助大家盡快的理解。(但是呢,C語言和C++可是有著密不可分的關(guān)系哦,一般學(xué)習(xí)其中一種都會需要學(xué)習(xí)另一種!)

1、關(guān)鍵字

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

2、源文件區(qū)別

C語言文件后綴為.c

C++原文件名后綴為.cpp

如果在創(chuàng)建源文件時什么都不給,默認(rèn)是.cpp

3.返回值不同

C語言中,如果一個函數(shù)沒有指定返回值類型,默認(rèn)為int類型,并返回一個隨機(jī)數(shù),一般為0XCCCCCCCC

在C++中,如果函數(shù)沒有返回值則必須指定為void型,否則編譯不能通過

4、參數(shù)列表

在C語言中,函數(shù)沒有指定的參數(shù)列表時,默認(rèn)可接收任意多個參數(shù)

在C++中,有嚴(yán)格的參數(shù)類型檢測,沒有參數(shù)列表的函數(shù),默認(rèn)為void,不接收任何參數(shù)。

缺省參數(shù)

缺省參數(shù)是聲明和定義時函數(shù)的參數(shù)指定一個默認(rèn)值。在調(diào)用該函數(shù)時,如果沒有指定實參則采用默認(rèn)值,否則使用指定的實參。

如下代碼:

#include

using namespace std;

void test(int a = 1)

{

cout

}

int main()

{

test();

test(10);//輸出的結(jié)果是1

return 0;//函數(shù)輸出結(jié)果是10

}

而缺省參數(shù)是分為兩類的,一類是全缺省,一類是半缺省。

首先是全缺省,全缺省參數(shù)所有參數(shù)都有默認(rèn)值,如果沒有手動傳參,那么編譯器會使用默認(rèn)參數(shù)列表中的參數(shù)。但是這里值得注意的是,如果傳參的時候只傳了部分參數(shù),那么該值會被從左至右匹配。“我是一名從事了10年開發(fā)的老程序員,最近我花了一些時間整理關(guān)于C語言、C++,自己有做的材料的整合,一個完整的學(xué)習(xí)C語言、C++的路線,學(xué)習(xí)材料和工具。全球最大的C/C++、編程愛好者的聚集地就在我這里<C語言C++編程學(xué)習(xí)>!歡迎初學(xué)和進(jìn)階中的小伙伴。希望你也能憑自己的努力,成為下一個優(yōu)秀的程序員。

代碼示例:

#include

using namespace std;

void test(int a = 1,int b = 2, int c = 3)

{

cout

}

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;

}

?

C/C++

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

void test(int a ,int b = 2, int c = 3)

{

cout

}

void test1(int a, int b, int c = 3)

{

cout

}

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

注意:

帶缺省值的參數(shù)必須放在參數(shù)列表的最后面。因為傳參是從右向左的。

缺省參數(shù)不能同時在函數(shù)聲明和定義中出現(xiàn),只能二者留其一。

缺省值必須是常量或者全局變量。

C語言并不支持缺省。

5、C++支持函數(shù)重載,C語言不支持

在實際開發(fā)中,有時候我們需要實現(xiàn)幾個功能類似的函數(shù),只是有些細(xì)節(jié)不同。

例如希望交換兩個變量的值,這兩個變量有多種類型,可以是 int、float、char、bool 等,我們需要通過參數(shù)把變量的地址傳入函數(shù)內(nèi)部。

在C語言中,程序員往往需要分別設(shè)計出三個不同名的函數(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++ 允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function Overloading)。借助重載,一個函數(shù)名可以有多種用途。

need-to-insert-img

每天晚上20:00都會開直播給大家分享C/C++游戲編程學(xué)習(xí)知識和路線方法,群里會不定期更新最新的教程和學(xué)習(xí)方法,最后祝所有程序員都能夠走上人生巔峰,讓代碼將夢想照進(jìn)現(xiàn)實

C/C++

參數(shù)列表又叫參數(shù)簽名,包括參數(shù)的類型、參數(shù)的個數(shù)和參數(shù)的順序,只要有一個不同就叫做參數(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

//交換 float 變量的值

float f1 = 12.5, f2 = 56.93;

Swap(&f1, &f2);

cout

//交換 char 變量的值

char c1 = 'A', c2 = 'B';

Swap(&c1, &c2);

cout

//交換 bool 變量的值

bool b1 = false, b2 = true;

Swap(&b1, &b2);

cout

return 0;

}

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

200, 100

56.93, 12.5

B, A

1, 0

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

在使用重載函數(shù)時,同名函數(shù)的功能應(yīng)當(dāng)相同或相近,不要用同一函數(shù)名去實現(xiàn)完全不相干的功能,雖然程序也能運(yùn)行,但可讀性不好,使人覺得莫名其妙。

注意,參數(shù)列表不同包括參數(shù)的個數(shù)不同、類型不同或順序不同,僅僅參數(shù)名稱不同是不可以的。函數(shù)返回值也不能作為重載的依據(jù)。

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

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

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

僅僅返回類型不同不足以成為函數(shù)的重載。

need-to-insert-img

C/C++

6、指針和引用

C語言中函數(shù)傳參方式有兩種:傳值和傳址

以傳值方式,在函數(shù)調(diào)用過程中會生成一份臨時變量用形參代替,最終把實參的值傳遞給新分配的臨時形參。

它的優(yōu)點(diǎn)是避免了函數(shù)調(diào)用的副作用,卻無法改變形參的值。如果要改變實參的值,只能通過指針傳遞。

指針可以解決問題,但是不安全,因此在C++中引入了引用。

引用:引用不是新定義的一個變量,他是原變量的一個別名,編譯器不會為引用變量開辟空間,它和他引用的變量共用同一塊內(nèi)存空間。

類型& 變量(對象名)=引用變量

int &num1=num0;

引用特性;

1、引用定義時必須初始化

2、一個變量可以有多個引用

3、引用一旦綁定一個實體就不能改變?yōu)槠渌兞康囊?/p>

//指針和引用的區(qū)別

引用不可以為空,但指針可以為空

引用不可以改變指向,對一個對象”至死不渝”;但是指針可以改變指向,而指向其它對象

引用的大小是所指向的變量的大小,因為引用只是一個別名而已;指針是指針本身的大小,4個字節(jié)。

如果大家對C/C++感興趣的話,可以加一下我們的學(xué)習(xí)交流Q群:637 ?935 ?295,免費(fèi)領(lǐng)取一套學(xué)習(xí)資料和視頻課程喲~

7、命名空間

在C++中,變量、函數(shù)和類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局命名空間中,會導(dǎo)致很多沖突,使用命名空間的目的是對標(biāo)識符的名稱進(jìn)行本地化,以避免命名沖突或者名字污染,namespace關(guān)鍵字的出現(xiàn)就是解決這種問題。而C語言中沒有。

8、輸入與輸出

cout代表c++的輸出流

cin代表c++的輸入流

它們都是在頭文件“iostream”中定義。

“cout”必須與”

在一條語句中可以多次使用“

如:cout

#include

using namespace std;

int main()

{

int a,b;

cout

cin>>a>>b;

cout

return 0;

}

總結(jié)

以上是生活随笔為你收集整理的C语言和C+的区别是什么?8个点通俗易懂的告诉你的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。