1。定義數(shù)組變量時(shí)必須指定數(shù)組元素個(gè)數(shù),因?yàn)橄到y(tǒng)會(huì)根據(jù)元素個(gè)數(shù)在編譯時(shí)一次性分配這么多內(nèi)存;
而指針變量只需要指定類(lèi)型,系統(tǒng)只為該指針變量分配4字節(jié)(32位機(jī))內(nèi)存,而不會(huì)為該變量所指內(nèi)容分配內(nèi)存。
2。指針變量是有存儲(chǔ)空間的;而數(shù)組名僅僅是一個(gè)標(biāo)號(hào),沒(méi)有實(shí)際存儲(chǔ)空間,單單一個(gè)數(shù)組名就只能表示該數(shù)組的第1個(gè)元素的地址。int a[10]; 規(guī)定&a就等于&a[0]或者a .
3。例如 char str[]= "hello world"和char *p = "hello world"中,數(shù)組str是先分配給他元素個(gè)數(shù)個(gè)內(nèi)存,然后將后面的字符串復(fù)制給這個(gè)空間(注意,此時(shí)應(yīng)該考慮\0字符);而p的建立過(guò)程是先在靜態(tài)存儲(chǔ)區(qū)建立常字符串"hello world\0",然后將p指向這個(gè)常字符串。所以數(shù)組str中元素的內(nèi)容可以通過(guò)重新賦值改變,而p指向的內(nèi)容不能改變。
posted on 2005-12-18 21:40
halCode 閱讀(572)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
算法/數(shù)據(jù)結(jié)構(gòu)