專項練習 陣列和字串(三)

2021-07-31 21:04:34 字數 2173 閱讀 1402

錯誤:

表頭可以為表或單元素值

表尾是指除去表頭後剩下的元素組成的表(即使只剩乙個元素也視為表),可以為空表

void foo(int b[3])

void main()

,,};

foo(a);

printf(「%d」,a[2][1]);

}

int b[3]即是int(*b)[3],b是指向有三個int元素陣列的指標;陣列做形參退化為指標。

a[3][3]可以看作是含有三個一維陣列元素的陣列;

b開始指向a[0][0],++b後,b指向a[1][0],而b[1][1] =b[1]+1=*(b+1)+1即 指向a[2][1],

b[1][1]=9;即a[2][1]=9。

void func(char str_arg[100])

sizeof(str)測量的是字元陣列的占用長度,注意字串後還有個\0,所以是6

sizeof(p)測量的是指標的占用長度,64位系統下是8位元組

sizeof(str_arg)測量的是指標長度,因為這裡是形參。

a. 靜態成員不屬於物件,是類的共享成員

b. 靜態資料成員要在類外初始化

正確:靜態成員可在類體內定義,也可以在類體外定義,需在類外初始化

c. 呼叫靜態成員函式時要通過類或物件啟用,所以靜態成員函式擁有this指標

錯誤:不存在this指標

d. 非靜態成員函式也可以操作靜態資料成員

a. 只能在該cpp所在的編譯模組中使用該變數

正確 b. 該變數的值是不可改變的

c. 該變數不能在類的成員函式中引用

d. 這種變數只能是基本型別(如int,char)不能是c++型別

有乙個類b繼承自類a,他們資料成員如下: 

class a ;

class b : public a

建構函式初始化時必須採用初始化列表一共有三種情況,

1.需要初始化的資料成員是物件(繼承時呼叫基類建構函式)

2.需要初始化const修飾的類成員

3.需要初始化引用成員資料

b c

若char是一位元組,int是4位元組,指標型別是4位元組,**如下:

class ctest

virtual

void mem_fun(){}

private:

char m_chdata;

int m_ndata;

static

char s_chdata;

};char ctest::s_chdata=』\0』;

1.在類中,如果什麼都沒有,則類占用1個位元組,一旦類中有其他的占用空間成員,則這1個位元組就不在計算之內,如乙個類只有乙個int則占用4位元組。

2.如果只有成員函式,則還是只占用1個位元組,因為類函式不占用空間

3.虛函式因為存在乙個虛函式表,需要4個位元組,

4.資料成員物件如果為指標則為4位元組,注意有位元組對齊。

virtual void mem_fun(){}; 佔4個位元組,

char m_chdata; 佔1個位元組,

int m_ndata; 佔4個位元組;

按照4位元組對齊就是 4 4 4即12位元組;

按照1位元組對齊就是 4 1 4 即9位元組。

class p

; virtual

int setval(int val)

;};

int ival; 佔4位元組

virtual int setval(int val) ; 佔4位元組

sizof(p)=8。

a. 靜態變數和常量的作用相同

錯誤b. 函式中的靜態變數,在函式退出後不被釋放

正確:函式中的靜態變數是靜態區域性變數 函式退出後不被釋放 在程式執行結束時才釋放。

c. 靜態變數只可以賦值一次,賦值後則不能改變

錯誤:靜態變數儲存在全域性儲存區,直到程式結束後才會被釋放,只進行一次初始化,以後的值是上一次使用過後的值,也即是可變的,而變數是不可變的。

d. 靜態全域性變數的作用域為乙個程式的所有原始檔

錯誤:靜態全域性變數的作用域只能是定義它的檔案裡,不是被其他檔案使用。

專項練習 陣列和字串(二)

私有成員不能被派生類訪問 include include void fun char s main 主函式中呼叫fun p 函式後,進入函式fun char s 實參 char p和形參char s間,只是簡單的位址值的形式傳參。如果在fun char s 函式中輸出s,會出現string 但形參的...

專項練習之字串

時間限制 1 s 空間限制 128000 kb 題目等級 青銅 bronze 給出乙個英語句子,希望你把句子裡的單詞順序都翻轉過來 輸入描述 input description 輸入包括乙個英語句子。輸出描述 output description 按單詞的順序把單詞倒序輸出 樣例輸入 sample ...

陣列和字串練習

二 學習心得 三 github 庫鏈結 注意 中心下標可能出現在陣列的兩端。include using namespace std intmain i,j,lsum 0,rsum 0,re 1 int n sizeof nums sizeof nums 0 for i 1 i n i for j 0...