一.字元陣列的賦值問題
1.對單個元素進行賦值
char s[5];
s[0]='g'; s[1]='o'; s[2]='o'; s[3]='d';
ps:當檢查到'\0'時,就認為乙個字串結束了。
2.用串常量初始化。
char s[5]="good"; //正確
char s[4]="good"; //錯誤,陣列溢位。
ps:'\0'不算入字串長度,但占用位元組。
3.賦值輸出。
(1)將s[4]賦為』y『,正常輸出goody。
(2)將s[5]賦為'y',只輸出good。這是為什麼呢?
原來在賦完初值'good'後,s[4]處為'\0',當再次檢查到s[4]時,編譯器就認為字串已經結束,就不再輸出s[5]處的'y'了。
ps:可知,將乙個字元陣列賦為空可為s[0]='\0';。
二.動態陣列的建立與刪除
(1)一維動態陣列
int *p=new int[10]; //建立乙個長度為10的動態陣列。
delete p; //釋放p所指的儲存空間。
(2)多維動態陣列(例如3維)
int ***p=new int**[3]; //建立第一維。
for (int i=0;i<3;i++) p[i]=new int *[3]; //建立第二維。
for (int i=0;i<3;i++)
for (int j=0;j<3;j++) p[i][j]=new int[10]; //建立第三維。
delete p; //釋放。
Char陣列的賦值
1 定義的時候直接用字串賦值 char a 10 hello sizeof a 為10 或char a hello sizeof a 為6 注意 不能先定義再給它賦值,如char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 sizeof a 為10 或...
用Qstring給char 陣列賦值
tree data.desc desc是char 80 型別的資料 qstring newdescstr strcpy tree data.desc newdescstr.tolocal8bit data 注意 tolocal8bit 為了讓qstring變成qbytearray,也為了漢字本地化處...
char 的賦值問題
在實際程式設計過程中常會用到char 型別來表達字串,而此時如果使用動態分配的方式並且在賦值時沒有使用strcpy函式而是直接使用 則在釋放該指標空間時會產生堆溢位錯誤,造成該問題產生的原因大家都明白只是沒注意。所以在此時char 賦值建議使用拷貝函式來處理,例項 char mtype 0 mtyp...