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ù)聲明和定義中出現(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ù)名可以有多種用途。
6、指針和引用
C語言中函數(shù)傳參方式有兩種:傳值和傳址
以傳值方式,在函數(shù)調(diào)用過程中會生成一份臨時變量用形參代替,最終把實參的值傳遞給新分配的臨時形參。
它的優(yōu)點是避免了函數(shù)調(diào)用的副作用,卻無法改變形參的值。如果要改變實參的值,只能通過指針傳遞。
指針可以解決問題,但是不安全,因此在C++中引入了引用。
引用:引用不是新定義的一個變量,他是原變量的一個別名,編譯器不會為引用變量開辟空間,它和他引用的變量共用同一塊內(nèi)存空間。
類型& 變量(對象名)=引用變量
int &num1=num0;
引用特性;
1、引用定義時必須初始化
2、一個變量可以有多個引用
3、引用一旦綁定一個實體就不能改變?yōu)槠渌兞康囊?
//指針和引用的區(qū)別
引用不可以為空,但指針可以為空
引用不可以改變指向,對一個對象”至死不渝”;但是指針可以改變指向,而指向其它對象
引用的大小是所指向的變量的大小,因為引用只是一個別名而已;指針是指針本身的大小,4個字節(jié)。
7、命名空間
在C++中,變量、函數(shù)和類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局命名空間中,會導(dǎo)致很多沖突,使用命名空間的目的是對標(biāo)識符的名稱進(jìn)行本地化,以避免命名沖突或者名字污染,namespace關(guān)鍵字的出現(xiàn)就是解決這種問題。而C語言中沒有。
8、輸入與輸出
cout代表c++的輸出流
cin代表c++的輸入流
它們都是在頭文件“iostream”中定義。
“cout”必須與”<<”一起使用,“<<”起到插入的作用。
在一條語句中可以多次使用“<<”輸出多個數(shù)據(jù)。
如:cout<
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout<<'請輸入a,b的值'<<endl;
cin>>a>>b;
cout<<'輸出a的值'<<a<<'輸出b的值'<<b<<endl;
return 0;
}
學(xué)習(xí)從來不是一個人的事情,要有個相互監(jiān)督的伙伴,工作需要學(xué)習(xí)C/C++或者為了入行、轉(zhuǎn)行學(xué)習(xí)C/C++的伙伴可以私信回復(fù)小編“學(xué)習(xí)”領(lǐng)取全套免費C/C++學(xué)習(xí)資料、視頻
部分教程截圖
教程內(nèi)容包括
1.開發(fā)環(huán)境搭建
2.C語言教程
3.C++教程
4.數(shù)據(jù)結(jié)構(gòu)與算法
5..Net全套教程
6.C++Primer教程
7.項目實操