學(xué)c++要了解什么(3)
學(xué)c++要了解什么
四、關(guān)于const
一般的const變量:
下面兩個(gè)聲明都指向一個(gè)const int類型的指針,指針?biāo)赶虻膬?nèi)存不能被修改,但指針可以指向另一個(gè)內(nèi)存:
const int *p;
int const *q;
int類型的const指針應(yīng)該這樣聲明。指針?biāo)赶虻膬?nèi)存可以被修改,但指針不能指向另一個(gè)內(nèi)存
int * const r= &n;
聲明一個(gè)指向const int類型的const指針:
const int * const p=&n;
const在函數(shù)聲明中的含義:
const int& SetPoint(const int& param) const
第一個(gè)const:
函數(shù)的返回值限定為const,即返回值不能被修改。const int a=SetPoint(...) a在此之后便不能被修改。
第二個(gè)const:
指函數(shù)的形參為const類型,函數(shù)體內(nèi)不能被修改.
第三個(gè)const:
表明這個(gè)函數(shù)不會(huì)對(duì)這個(gè)類對(duì)象的數(shù)據(jù)成員(準(zhǔn)確地說(shuō)是非靜態(tài)數(shù)據(jù)成員)作任何改變。
類的const和static成員變量的初始化:
對(duì)于static成員變量,如果同時(shí)是const的,可以在類定義中初始化,否則只能在類定義外部初始化。
非static的const成員變量只能在構(gòu)造函數(shù)的初始化列表中初始化。(ClassName():m_1(1){};)
五、一些數(shù)據(jù)類型和變量賦值語(yǔ)法
1、union 中的所有被聲明的元素占據(jù)同一段內(nèi)存空間,其大小取聲明中最長(zhǎng)的元素的大小。union 的用途之一是將一種較長(zhǎng)的基本類型與由其它比較小的數(shù)據(jù)類型組成的結(jié)構(gòu)(structure)或數(shù)組(array)聯(lián)合使用。
2、long double和float變量的賦值方法:
3.14159L // long double
6.02e23f // float
3、容易引起理解錯(cuò)誤的定義語(yǔ)句:int* p,q;
第一眼看去,好像是p和q都是int*類型的,但事實(shí)上,只有p是一個(gè)指針,而q是一個(gè)最簡(jiǎn)單的int型變量。同時(shí)定義兩個(gè)指針的語(yǔ)法是:int *p1, *p2;
4、定義一個(gè)指向int[4]數(shù)組的指針變量
int (*p)[4]=RollNum;
這里,p被聲明為一個(gè)指向一個(gè)4元素(int類型)數(shù)組的指針。
5、未指定size情況下,char數(shù)組的大小由初始化字符串決定:
我們可以用下面兩種方法的任何一種來(lái)初始化字符串mystring:
char mystring [ ] = { 'H', 'e', 'l', 'l', 'o', '/0' };
char mystring [ ] = "Hello";
在兩種情況下字符串或數(shù)組mystring都被定義為6個(gè)字符長(zhǎng)(元素類型為字符char):組成Hello的5個(gè)字符加上最后的空字符('/0')。在第二種用雙引號(hào)的情況下,空字符('/0')是被自動(dòng)加上的。兩種情況下sizeof應(yīng)該都是6,strlen都是5。
六、常用的幾個(gè)標(biāo)準(zhǔn)C++函數(shù)
1、cout和cin的用法:
cout << "xxx" << endl;
cin >> "yyy";
2、常用的字符串函數(shù):
strcat //字符串拼接
strcpy
strncpy
strcmp //字符串比較,相同返回0
七、switch-case的寫(xiě)法
switch (expression)
{
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
.
default:
default block of instructions
}
看過(guò)“學(xué)c++要了解什么“的人還看了: