1. 程式人生 > >char陣列的賦值操作&動態儲存建立刪除

char陣列的賦值操作&動態儲存建立刪除

一.字元陣列的賦值問題

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; //釋放。