char陣列的賦值操作&動態儲存建立刪除
阿新 • • 發佈:2019-01-07
一.字元陣列的賦值問題
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; //釋放。