我們知道,當我們在表示式中使用陣列名時,實際上使用的是指向陣列首元素的指標,實際上使用陣列名參加下標運算時,本質上參加運算的仍然是指向陣列首元素的指標:
int ia=;
int i=ia[2];ia[2]的運算過程實際是這樣的:*(ia+2);
實際上只要指標指向陣列元素,我們就可以對它進行下標操作:
int *p=&ia[2];
int j=p[1];//p[1]等價於*(p+1),也即ia[3]
需要注意的是,雖然陣列和標準庫型別 vector 、string 都能進行下標運算,但是,
標準庫型別使用的下標必須是無符號型別(size_t),而內建陣列的下標運算沒有這個要求
。舉例如下:
#include int main()
; int* p = &a[ 4 ];
for ( int i = -4; i <= 0; i++ )
system("pause");
return 0;
}
c++中下標是可以為負數的,當陣列下標位負數時,就是從當前位址向前定址。。這裡的輸出結果為:0,,1,2,3,4 C語言 指標篇 三 陣列的下標引用和指標訪問
1.以下標引用的方式訪問陣列 在使用陣列的場合中,我們常見的一種訪問方法是使用下標訪問陣列元素,如 array 2 1,此語句是將該陣列的第三個元素賦值為1.符號中的數字可以認為是在陣列基位址上的偏移量,可以通過改變這個偏移量來訪問整個陣列。2.以指標訪問的方式訪問陣列 除了使用偏移量的方法,我們還...
C中的陣列和指標
在這裡隨便定義乙個陣列 int arr 5 arr現在就是陣列名,arr 代表的是該陣列整塊記憶體,即sizeof arr 20 假設sizeof int 4 arr 裡的內容是該塊記憶體的首位址,即 arr arr 0 arr可以看做是乙個常量,也就不可以使用 arr 之類的運算。int p p ...
C 中的陣列和指標
1 include 2 include 34 using namespace std 56 intmain 7 9int p 2 10 p k 11 cout 0 0 p 0 1 p 2 1213 return0 14 輸出 10,20,50 c語言英語的表達 中文的表現 int hoge hoge...