??C++是由C語(yǔ)言演變出來(lái)的,那么C++有什么特別的呢?
這篇文章主要寫(xiě)C++相比較C語(yǔ)言的特別之處。
cin>>m>>n;
cout<
2.格式化基本簡(jiǎn)單實(shí)驗(yàn)代碼
#include#includeusing namespace std;
int main()
{bool m;
double x,y,z,f;
float f1;
int a,b,c;
cin>>boolalpha>>m; //輸入:true
cout<>oct>>a>>hex>>b>>dec>>c; //輸入:23 D2 -9
cout<>x>>y>>f>>f1; //輸入:3.14 0.1e1 3.1415926 0.1
cout.precision(5); //按浮點(diǎn)數(shù)形式輸出
cout<
查看詳細(xì)簡(jiǎn)潔全面格式化請(qǐng)移步
link(C++ 數(shù)據(jù)格式化)
(1)在聲明或者定義函數(shù)的時(shí),為形參指定默認(rèn)值,叫做默認(rèn)參數(shù);
(2) 分類(lèi):半缺省參數(shù)(形參不全部指定默認(rèn)值)、全缺省參數(shù)(形參全部指定默認(rèn)值)
(3)在半缺省參數(shù)情況下,默認(rèn)參數(shù)放在參數(shù)列表的最后面;
??上代碼
#includeusing namespace std;
int func(int x=2,int y=3)
{return x+y;
}
int main()
{int a=3,b=9;
int k;
k=func(a); //輸出為3+3=6
//k=func(a,b) 輸出為 3+9=12
//k=func() 輸出為2+3=5
cout<
(4)缺省參數(shù)不能再函數(shù)聲明和函數(shù)定義中同時(shí)出現(xiàn),必須二選一;
(5)默認(rèn)參數(shù)必須是常量、全局變量、函數(shù)調(diào)用,不能是局部變量;
(1)定義:在同一個(gè)域中用同一個(gè)函數(shù)名來(lái)定義不同的函數(shù),要求函數(shù)參數(shù)的類(lèi)型、數(shù)量、返回值類(lèi)型不同;
(2)優(yōu)點(diǎn):在編程中會(huì)遇到幾個(gè)函數(shù)的功能差不多,但是參數(shù)不同,例如add,將不同類(lèi)型的參數(shù)進(jìn)行add,如果是C語(yǔ)言可能要對(duì)函數(shù)命名add1,add2,add3,令人看的頭大。
??更加注意不要將功能不一樣的函數(shù)聲明成重載函數(shù),以免誤解和混淆。
上代碼
int add(int a,int b);
double add(double a,double b);
double add(int a, int b,double c);
3.函數(shù)模板1.定義:獨(dú)立于類(lèi)型的函數(shù),可做為一種模式,產(chǎn)生函數(shù)的特定類(lèi)型版本;根據(jù)數(shù)據(jù)類(lèi)型,自動(dòng)實(shí)例化。
2.實(shí)質(zhì):同一個(gè)函數(shù)體,可以給不同類(lèi)型數(shù)據(jù)使用;相當(dāng)于函數(shù)重載的數(shù)量相同,類(lèi)型不同的進(jìn)步。
3.函數(shù)模板定義語(yǔ)法形式是:
template<模板形參表>返回類(lèi)型 函數(shù)名 (形參列表)
{
??函數(shù)體
}
上代碼
#includeusing namespace std;
templateT abs(T a) //用T表示數(shù)據(jù)類(lèi)型,也可用其他表示
{return a>0?a:-a;
}
int main()
{int a=-3;
double b=2.3;
cout<
4.模板形參表
(1)定義:用尖括號(hào)< >括起來(lái),來(lái)表示一個(gè)或者多個(gè)模板形參的列表;
(2)表示< >之間不允許為空,多個(gè)形參之間用 ,逗號(hào)隔開(kāi);
(3)兩種形式:
template< typename 類(lèi)型參數(shù)名1 ,typename 類(lèi)型參數(shù)名2>
template< class 類(lèi)型參數(shù)名1,class 類(lèi)型參數(shù)名 2 >
一般用第一種typename,第二種class與面向?qū)ο?類(lèi)重復(fù),容易混淆
三、寄存器變量可以儲(chǔ)存在CPU寄存器中的局部變量
register 數(shù)據(jù)類(lèi)型 變量名稱(chēng)
register int a
特點(diǎn)是運(yùn)行速度快,但是寄存器的空間是有限的,考量一下要不要用,別等需要的時(shí)候,沒(méi)有空間了
四、內(nèi)部函數(shù)和外部函數(shù) 1.內(nèi)部函數(shù)static 返回值類(lèi)型 函數(shù)名 (形參)
{
??函數(shù)體
}
適用于多個(gè)文件的程序,內(nèi)部函數(shù)的意義是只能本文件使用,在連接檢查的時(shí)候不會(huì)出現(xiàn)函數(shù)名不唯一的情況,多個(gè)人編寫(xiě)同一個(gè)程序時(shí)常用的策略。
2.外部函數(shù)extern 返回值類(lèi)型 函數(shù)名(形參)
{
??函數(shù)體
}
在程序中基本都是外部函數(shù),extern可以省略
五、數(shù)組 1.數(shù)組的長(zhǎng)度數(shù)組的長(zhǎng)度是一個(gè)常量,不能用變量,長(zhǎng)度不能改變
2.多維數(shù)組多維數(shù)組初始化的時(shí)候,第一個(gè)長(zhǎng)度可以省略,但是后面的不能省略,因?yàn)榫幾g器可以根據(jù)數(shù)組的元素個(gè)數(shù)自動(dòng)判斷出來(lái)第一個(gè)長(zhǎng)度
3.數(shù)組的引用int a[ ][2][3] ={1,2,3,4,5,6,7,8,9,10,11,12} //正確
int a[2][ ][3]={1,2,3,4,5,6,7,8,9,10,11,12} //錯(cuò)誤
int a[2][2][3]={1,2,3,4,5,6,7,8,9,10,11,12} //正確
不能對(duì)整個(gè)數(shù)組進(jìn)行引用,賦值
可以對(duì)單個(gè)數(shù)組元素變量進(jìn)行引用、賦值
(1)數(shù)組為函數(shù)形參的時(shí)候
double max(double a[10] ) //即數(shù)組類(lèi)型、數(shù)組名字、數(shù)組長(zhǎng)度,長(zhǎng)度可以省略
一維數(shù)組的時(shí)候,形參數(shù)組長(zhǎng)度可以寫(xiě),可以不寫(xiě),可以與實(shí)參的數(shù)組長(zhǎng)度相同或者不同;
多維數(shù)組的時(shí)候,第一維任意,但是其他維要與實(shí)參相同;
(2)實(shí)參傳遞數(shù)組名,數(shù)組的首地址傳遞到函數(shù)
(3)數(shù)組的形參實(shí)際上接收不到數(shù)組的長(zhǎng)度,所以可以再設(shè)置一個(gè)形參來(lái)傳遞數(shù)組的長(zhǎng)度
#includeusing namespace std;
int fcout(int a[],int n) //數(shù)組的長(zhǎng)度n
{int i=0;
for(;icout<int a[5]={1,2,3,4,5};
fcout(a,5);
return 0;
}
六、字符串
1.以字符數(shù)組儲(chǔ)存(1)定義形式
char a[4]={‘a(chǎn)’,‘b’,‘c’,‘d’}
(2) 以’\0’結(jié)尾,\0是字符串結(jié)束的標(biāo)志,遇到這個(gè)字符結(jié)束,
字符串實(shí)際存放在字符數(shù)組中,字符數(shù)組長(zhǎng)度+1,來(lái)存儲(chǔ)這個(gè)\0;
(3)字符串常量用“ ”表示,編譯器自動(dòng)再字符串最后加上\0空字符
(1)標(biāo)準(zhǔn)輸入輸出流
char str[80];
cin>>str;
cout<
(2)字符串輸入輸出函數(shù)
char *gets (char *s);
gets函數(shù)原型即輸入字符串到s中去,s是字符數(shù)組或是指向字符數(shù)組的指針,長(zhǎng)度足夠大,可以容納很大的字符串
char str[80];
gets(str); //輸入字符串
char *puts(char *s);
puts函數(shù)輸出s字符串,遇到空字符結(jié)束,最后輸出一個(gè)‘\n’換行字符;
不輸出字符串的最后的空字符.
char str[80]="指針不指南嗎";
gets(str); //輸出字符串
3.string.hchar str1[10] , str 2=“computer”;
strcpy(str1,str 2) ; //復(fù)制str2到str1,包括最后的\0
char str1[10] , str 2=“computer”;
strncpy(str1,str 2,4) ; //復(fù)制str2前4個(gè)字符到str1,補(bǔ)\0
char str1=“ABC” , str 2=“123”;
strcpy(str1,str 2) ; //把str2連接到str1后面,包括\0,str 2沒(méi)有變化
char str1=“ABC” , str 2=“123456”;
strcpy(str1,str 2,4) ; //把str2前4個(gè)字符連接到str1后面
if(strcmp(str1,str2)==0)… //比較字符串相等
if(strcmp(str1,str2)>0)… //比較str1大于str2
n=strlen(“computer”) //n=8,不包含\0
char string[20]=“l(fā)ove computer”;
n=strlen(string); //n=13
4.string 對(duì)象f=atof(“123.45”); //f=123.45,把字符串轉(zhuǎn)化成一個(gè)float數(shù)據(jù)
i=atoi(“-456”); //i=-456,把字符串轉(zhuǎn)化成一個(gè)int數(shù)據(jù)
(0)需要包含頭文件
#include //不能寫(xiě)成string .h
(1)字符串對(duì)象的定義和初始化
和變量相似,如果string沒(méi)有初始化則一律為空字符串,注意string不需要NULL結(jié)尾
char str[20]; //C風(fēng)格定義
string str1; //定義string對(duì)象
string sx,sy,sz; //定義多個(gè)string對(duì)象
char str[20]=“computer”; //C風(fēng)格初始化
string str1=“computer”; //string對(duì)象復(fù)制初始化
string str1(“computer”); //string對(duì)象直接初始化
(2)string對(duì)象的引用
與變量相似,直接引用string對(duì)象名即可
str1=“computer” ; //直接使用string
(3)string對(duì)象的輸入輸出
cin>>str1; //輸入字符串到string對(duì)象中存放
cout<gets(str1); //c風(fēng)格字符串輸入輸出
puts(str1);
(4)字符串的運(yùn)算
string st1=“AB”,str2=“12”;
str=str1+str2;//str=“AB12”;
str1+=str2; //str=“AB12”;
str1=str1+“aph”; //str1=“ABaph”;
str1=“AB”,str2=“12”;
str1>str2;結(jié)果為假;
str1== str2;//jia;
str1=="ABC“
(5)其他對(duì)它的成員函數(shù)進(jìn)行操作
程序中順序都是從0開(kāi)始的
形式如下
str1="ABCDEF";
n=str1.size();//n=7;
n=str1.length();//n=7;
b=str1.empty();//b為假,判斷字符串是不是空字符串bool
//得到子字符串
str2=str1.substr(2,4);//從第2個(gè)字符開(kāi)始的4個(gè)字符;str2="CDE";
//查找字符串
n=str1.find("DEF",pos); //從pos開(kāi)始查找字符串"DEF"在字符串str1中的位置,返回開(kāi)始的位置,n=3;
//刪除字符
str1.erase(1,2); //從第1個(gè)字符開(kāi)始的后2個(gè)字符刪掉,str1="ABEF";
//增加字符
str1.append("123456",1,3);//
//字符串的替換和插入
str1.replace(p0,n0,S1,n); //刪除str1從p0開(kāi)始的n0個(gè)字符,在p0處插入字符串S1的前n個(gè)字符;
str1.replace(p0,n0,str2,pos,n); //刪除str1從p0開(kāi)始的n0個(gè)字符,在p0處插入字符串str2從pos開(kāi)始的前n個(gè)字符;
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站名稱(chēng):c++相比較c特有的-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.muchs.cn/article2/ipeic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、做網(wǎng)站、電子商務(wù)、網(wǎng)站排名、網(wǎng)站內(nèi)鏈、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容