首先,陣列名表示的是陣列首元素的位址。
int main()
; int *p = arr; //指標存放陣列首元素的位址
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i再者(p+i)代表的是下標為i的元素的位址,*(p+i)代表的是下標為i的元素的值
且在32位下,指標大小是4個位元組;在64位下,指標大小是8個位元組;這個位元組大小只會與作業系統有關,與指標型別是int、char……無關,位元組大小固定
int *p=null; //表示int*型別的指標變數p中儲存的值是0x00000000-->位址為0x00000000
*p=null; //表示p所指向的值為0-->值為0
char* p = "abcdef";
printf("%c\n", p[4]); //編譯器總是把以下標的形式的操作解析成以指標的形式的操作-->相當於解引用
指標陣列是指標還是陣列?
答案:是陣列。是存放指標的陣列。所有元素都是指標,陣列佔多少位元組數由陣列本身決定。
arr是陣列首元素的首位址,也就是arr[0]的首位址;&arr是陣列的首位址
&arr+1表示當前下一陣列的首位址(已經超出當前陣列的界限)
int *p1[10]; -->這是乙個指標陣列,「」的優先順序比「 * 」高,p1先與結合,構成陣列的定義,陣列名是p1,int *修飾的是陣列的內容,即陣列的每個元素
首先是乙個指標,它指向乙個陣列,在32位系統下永遠是4位元組,是指向陣列的指標
int (*p2)[10]–>這是乙個陣列指標,「()」的優先順序比「」高,所以p2先和「 * 」結合,形成乙個指標的定義,指標變數是p2,int修飾的是陣列的元素
陣列,指標,指標陣列,陣列指標
指標是在32位系統下佔四個位元組,64位系統下佔八個位元組的一種型別,指標指向的內容可以是常量,變數,函式,結構體,指標本身,陣列,等等.一級指標 一級指標常常在函式傳參時使用,可傳的引數有一維陣列,常量指標,函式指標等等都可以 但我們要注意不要在函式中,通過改變形參的指向來達到改變實參指向的效果,...
指標, 指標的指標, 陣列, 指標陣列, 陣列指標
指標 int a 10 int p a 指標的指標 int b 20 int p b int p2p p 簡單陣列 int c 10 整數陣列,含有10個整數元素 也就是說每乙個元素都是整數 指標陣列 int p 10 指標陣列,含有10個指標元素 也就是說每乙個元素都是指標 陣列指標 int p ...
指標,陣列指標,指標陣列
1.指標 指標可以看成乙個變數,指標所佔記憶體的大小和處理器的定址空間大小有關,32位處理器指標大小為4個位元組,64位處理指標大小為8個位元組。int p 定義乙個int型別的指標,p就可以看成乙個變數,p的值為0,表示p指向0位址 p也是占用記憶體的,編譯器在棧上為p分配記憶體,儲存p的值0,0...