新聞中心
而第二種方式則定義了一個動態(tài)數(shù)組(或稱為堆上分配內(nèi)存),第二種方式定義的動態(tài)數(shù)組可以看作是一個指針。a所指向的內(nèi)存空間既可以被當做一個整型數(shù)組使用。
在學習C語言過程中,我們經(jīng)常會遇到一些難以理解的概念,比如指針和數(shù)組。而在這些概念中,有一個小小但又十分重要的知識點——C語言9-3。

成都創(chuàng)新互聯(lián)公司2013年成立,先為馬龍等服務建站,馬龍等地企業(yè),進行企業(yè)商務咨詢服務。為馬龍企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
那么什么是C語言9-3呢?它其實就是一個關于指針和數(shù)組之間關系的問題。具體來說,在定義一個數(shù)組時,我們可以使用以下兩種方式:
1. int a[10];
2. int *a;
a = (int *)malloc(10*sizeof(int));
以上兩種方式都能夠定義出一個長度為10的整型數(shù)組。但是它們之間有著本質上不同的區(qū)別。
第一種方式定義了一個靜態(tài)數(shù)組,即在程序編譯期間就已經(jīng)確定了該數(shù)組所占用內(nèi)存空間大小,并且該內(nèi)存空間也被固定下來了。因此,在運行期間無法改變該數(shù)組所占用內(nèi)存空間大小。
而第二種方式則定義了一個動態(tài)數(shù)組(或稱為堆上分配內(nèi)存),即在程序運行期間才確定該數(shù)組所占用內(nèi)存空間大小,并且可以根據(jù)需要改變該內(nèi)存空間大小。
那么這個與指針有什么關系呢?其實,第二種方式定義的動態(tài)數(shù)組可以看作是一個指針。也就是說,a所指向的內(nèi)存空間既可以被當做一個整型數(shù)組使用,同時也可以被當做一段連續(xù)的內(nèi)存空間來使用。
因此,在理解C語言中指針和數(shù)組之間關系時,我們需要注意以下幾點:
1. 數(shù)組名本身并不代表某個特定位置上的數(shù)據(jù),在程序編譯期間它只是一段相鄰內(nèi)存塊首地址的符號名稱。
2. 在循環(huán)結構中,數(shù)組名會自動轉換為該元素在當前循環(huán)次數(shù)下對應元素地址。(例如:a[0]、a[1]等)
3. 指針變量與函數(shù)參數(shù)傳遞中都存在著“值傳遞”的問題。即在將一個數(shù)組或指針作為函數(shù)參數(shù)傳遞時,并不是將這個變量本身傳入了函數(shù)中去,而只是將該變量地址(也就是該變量所占用內(nèi)存空間的首地址)進行了拷貝。因此,在函數(shù)體內(nèi)部對于該形參所進行操作僅限于改變它所表示對象(如:數(shù)組或指針)內(nèi)容,并不能影響到原有實參。
通過以上幾點分析可知,在學習C語言過程中掌握好9-3概念非常重要。加深對于靜態(tài)/動態(tài)數(shù)組和指針之間的關系理解,能夠幫助我們更好地編寫程序,并且在日后的實際工作中也會有很大幫助。
最后,我想說,在學習C語言過程中遇到困難并不可怕,只要持續(xù)努力、深入思考就一定能夠掌握這門技術。相信大家都可以成為一個優(yōu)秀的程序員!
當前題目:探究C語言9-3的奧秘:讓你更好地理解指針和數(shù)組
轉載源于:http://m.fisionsoft.com.cn/article/cdhihgs.html


咨詢
建站咨詢
