陣列與指標的異同

2021-06-21 06:16:18 字數 485 閱讀 3933

我們定義乙個陣列和指標

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為位址取得資料。通常用於動態資料結構 通常用於儲存固定數目且資料型別相同的元素。相關...