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





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章