數(shù)組和指針總結(jié)
摘要: 1.定義
定義數(shù)組時必須指定數(shù)組的類型和大小,
定義指針時只需要指定類型。
2.存儲空間的分配
對于數(shù)組,因為系統(tǒng)會按照你指定的大小為數(shù)組分配存儲空間,這也是為什么數(shù)組必須指定大小的原因,如:char array[5] ; //系統(tǒng)會自動為其預(yù)留sizeof(char)*5個字節(jié)的連續(xù)內(nèi)存(注意是連續(xù)的)。所以我們可以對array[0]...array[4]這五個變量隨便訪問(讀和寫)都不會有問題。
對于指針,系統(tǒng)只會為所定義的指針變量分配空間,指針?biāo)赶虻牡攸c并未分配。舉個例子: char *p ; 這里會為變量p分配空間,大小為4字節(jié)(32位機),但是*p(就是p指向的地方)卻是隨機的地方,這個地方系統(tǒng)也不為其分配空間。所以在這種情況下,你訪問和給p賦值(p=...)都是允許的,但是訪問*p或者給*p賦值都是錯誤的。我們要想使用*p必須先使其指向有效區(qū)域,這可以通過動態(tài)申請內(nèi)存或者賦值(將知道的有效地點賦給它)來實現(xiàn)。
提醒一下:對于指針,在使用時,不光所指向的區(qū)域能讀寫,指針變量本身也能讀寫,但是數(shù)組不同,數(shù)組名的不能寫的
閱讀全文
posted @
2005-12-18 21:08 halCode 閱讀(933) |
評論 (0) 編輯