第9周專案1 深複製體驗

2021-07-12 02:01:14 字數 895 閱讀 4305

*檔名稱:c8weeks.cpp

*完成日期:2023年 5月25日

*版本號:vc++6.0

*/

#include#includeusing namespace std;

class a

~a()

void output()

a(a &b)

~a()

void output()

我們能常在用到 sizeof 和 strlen 的時候,通常是計算字串陣列的長度

看了上面的詳細解釋,發現兩者的使用還是有區別的,從這個例子可以看得很清楚:

char str[20]="0123456789";

int a=strlen(str); //a=10; >>>> strlen 計算字串的長度,以結束符 0x00 為字串結束。

int b=sizeof(str); //而b=20; >>>> sizeof 計算的則是分配的陣列 str[20] 所佔的記憶體空間的大小,不受裡面儲存的內容改變。  

上面是對靜態陣列處理的結果,如果是對指標,結果就不一樣了

char* ss = "0123456789";

sizeof(ss) 結果 4 ===》ss是指向

字串常量

的字元指標,sizeof 獲得的是乙個指標的之所佔的空間,應該是

長整型的,所以是4

sizeof(*ss) 結果 1 ===》*ss是第乙個字元 其實就是獲得了字串的第一位'0' 所佔的記憶體空間,是char類

型的,佔了 1 位

strlen(ss)= 10 >>>> 如果要獲得這個字串的長度,則一定要使用 strlen

第6周專案1 深複製體驗

檔名稱 test.cpp 作 者 劉暢 完成日期 2015年 4 月 11 日 版 本 號 v1.0 問題描述 輸入描述 null 程式輸出 按要求輸出。1 閱讀下面的程式,補足未完成的注釋。如下 include includeusing namespace std class a void out...

第07周 專案二 體驗深複製函式

作 者 王穎 完成日期 2014 年 4 月 7 日 版 本 號 v1.0 輸入描述 無 問題描述 下面的程式,因為存在指標型別的資料成員,需要能完成深複製的建構函式。請補充完整建構函式和析構函式 其他不必動 其中,建構函式要完成下面三個任務 1 為各成員函式賦值,其中arrayaddr應該是為儲存...

第六周 專案1 深複製體驗 2

問題及 專案1 深複製體驗 all right reserved 檔名 專案1 深複製體驗 2 將注釋 a 所在的那一行去掉,會出現什麼現象?為什麼?為什麼a資料成員所占用的儲存空間要在aa長度基礎上加1?若指標a不是指向字元 即不作為字串的位址 是否有必要加1?作者 童宇 完成日期 2015年 4...