我們定義乙個陣列和指標
int arry[ ] = {0, 4 ,7, 8}
int *ptr;
ptr = arry;(或者ptr = &arry[0])
首先我們要先了解一些概念:
0.陣列實際上是指標的變相形式
1.指標的數值就是它指向的物件的位址
2.在指標前運用運算子*就可以得到該指標所指向物件的數值
如:*ptr = 0
*(ptr+1)= 4
在這裡順便說一下*(ptr+1)與*ptr+1的區別,由於間接運算子*的優先順序高於+,所以*ptr+1相當於(*ptr)+1,也就是說*ptr+1等於第乙個元素的值(*ptr =0)加上1等於1
3.對指標加1,等於對指標的值(位址)加上它所指向的物件位元組的大小(假設指標以2個位元組單位增加)
*(arry + 2) = arry[2] /*相同的值*/
*(ptr+1) = arry[1] 等於4
指標與陣列的異同
在c語言中對於下面的兩種情況,是否相同呢?char a abcdefg 1 char p abcdefg 2 在談到這些區別時,應該先談一下計算機中對變數是如何儲存的。從編譯原理中我們知道,對於所有的變數他都會影射到乙個符號表中。為了簡化,這裡給出一種最簡單的便於理解的符號表 a 0xffaa p ...
指標與陣列的異同
在c語言中對於下面的兩種情況,是否相同呢?char a abcdefg 1 char p abcdefg 2 在談到這些區別時,應該先談一下計算機中對變數是如何儲存的。從編譯原理中我們知道,對於所有的變數他都會影射到乙個符號表中。為了簡化,這裡給出一種最簡單的便於理解的符號表 a 0xffaa p ...
c語言 陣列與指標的異同
指標 陣列儲存資料的位址 儲存資料 間接訪問資料,首先取得指標的內容,把它作為位址,然後從這個位址提取資料。如果指標有乙個下標 i 就把指標的內容加上i作為位址,從中提取資料。直接訪問資料,a i 只是簡單的以a i為位址取得資料。通常用於動態資料結構 通常用於儲存固定數目且資料型別相同的元素。相關...