C 小知識點

2022-05-22 22:03:11 字數 2471 閱讀 6153

內建型別的指標、引用,sizeof大小、虛函式大小

1char

yinyong =10

;2char&z 

=yinyong;

3cout 

<<

sizeof

(z) 

<<

endl;45

intintee =10

;6int&

intez 

=intee;

7cout 

<<

sizeof

(intez) 

<<

endl;89

char

*zz =&

yinyong;

10cout 

<<

sizeof

(zz) 

<<

endl;

輸出結果為1 4 4

內建型別的指標的sizeof值是:4

虛函式、整型ival各需要4 byte,總計8byte。

如果注釋掉9、10、11行,輸出大小為1。也就是說乙個類內沒有任何成員變數、成員函式、虛函式,它的sizeof大小為 1 byte。

string物件中的字元處理

我們經常要對string物件中的單個字元進行處理,例如通常需要知道某個特殊字元是否為空白字元、字母或者數字。這些函式定義在cctype標頭檔案中。

isdigit(c) 是否是數字    islower(c) 是小寫字母    isupper(c) 是大寫字母    isspace(c) 是空白字元

ispunct(c) 是標點符號    tolower(c) 轉換成小寫字母  toupper(c) 轉換成大寫字母   isalpha(c) 是字母?

解引用操作符* 和 自增操作符++ 的優先順序

*iter++

++的優先順序高於*。

string

mystring ="

meng";

cout 

<<

mystring.size() 

<<

endl;

if(mystring[4] 

==null)

cout 

<<

"true

"<<

endl;

執行的結果是,4 true

這說明string物件的末尾也有個null。

mystring.length() 結果也是4。 

vector, deque都支援容器的隨即訪問,vector插入刪除非末端元素耗費代價高。deque插入刪除非兩端位置元素代價高。

list不支援隨機訪問元素,但可以在任意位置插入刪除元素而消耗很低的代價。

1list

<

int>

ilist;

2vector

<

int>

ivec;

3deque

<

int>

ideq;

4ilist[

3];  

//error

5ideq[

3];  

//ok

ivec[

3];  

//ok  1

string

str ="

stately plump buck";

2char

*cp ="

stately plump buck";

3string

s1(str, 

7), s2;

4s2.assign(cp, 7);

5cout 

<<

s1 <<

endl;

6cout 

<<

s2 <<

endl;

列印結果為

空格plump buck

stately 

空類的sizeof大小

空類指的是裡面只有非virtual成員函式的類,並且不繼承任何類,無成員變數。其sizeof大小為1。 

c 小知識點

1 陣列間拷貝只能使用for迴圈乙個乙個拷貝,但是vector之間可以直接用乙個vector初始化另乙個vector。int main 2 vector 之間比較大小直接用 3 對於實參型別相同,並且數目不確定的情況下我們可以傳遞名為initializer list的標準庫型別。int func s...

C 小知識點

1.在c 中,每個程式必須包含乙個main 的入口函式,只有這樣,這個專案才能執行.2.函式包括 函式名,引數,返回值.3.return 是c 的預定義語句,提供了終止函式的一種方法 return 0表示成功執行正常退出.4.using namespace std 是指引用c 的標準庫.5.c 的4...

c小知識點

一 rand rand 函式用來產生隨機數,但是,rand 的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,因此在一定範圍內可以看成是隨機的。rand 會返回乙個範圍在0到rand max 至少是32767 之間的偽隨機數 整數 在呼叫rand 函式之前,可以使用srand 函式設定隨機數...