*檔名稱: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...