2013年3月22日 星期五

陣列位置

在前一篇陣列(array),有提到陣列就是宣告一個記憶體區塊皆為相同資料形態的工具,接下來我們就是要來驗證一下是否正確。
所以我們就來撰寫一個讀取陣列記憶體位置的程式,如下。
程式執行的時候會有警告的模式,但不影響執行結果。

NSLog(@"a[%i]=%x",i,&a[i]);這行程式碼是在輸出a[0]~a[4]的記憶體位置。
%i宣告要輸出的資料形態為整數,%x宣告要輸出的是address。
NSLog(@"a=%x",a);這行程式碼是在輸出a這個變數的address,我們可以發現他的address跟a[0]是一模一樣的,我們畫個圖會更清楚。
由圖可知,當我們宣告記憶體時會先宣告一個變數名稱為a、資料形態為int、4bytes的空間裡面存放的是a[0]的address,所以我們印出a的address時會跟a[0]的相同。


陣列的概念很重要歐!!

沒有留言:

張貼留言