c語言指標基礎之指標和陣列的關係

2021-12-30 01:25:52 字數 565 閱讀 2236

關於陣列和指標:

陣列的基位址是在記憶體中儲存陣列的起始位置,它是陣列中第乙個元素(下標為0)的位址,因此陣列名本身是乙個位址,即指標值

int a[10],*p 則有p = a 和p = &a[0]等價

p = a + 1 和p = &a[1]等價

*(a+i) 和a[i]等價

*(p+i) 和p[i]等價

陣列長度表示:sizeof(a)/sizeof(int)

指標變數在做p+1,p+2這樣的位移運算,每+1之後移動幾個位元組 取決於指標變數的型別(相當於陣列的角標+1)

int *p p+1之後移動4個位元組

char *p p+1之後移動1個位元組

例如:void sum(int *p,int n)

printf("sum = %d",sum);

}void sum1(int a, int n)

printf("sum = %d", sum);

}int main()

;sum1(b, sizeof(b) / sizeof(int));

return 0;

}

C語言指標 指標和陣列

先看乙個常用的例子 include int main void int p a printf d p 0 return 0 這段 編譯和執行都沒有任何問題,程式會列印出1這個值,但是為什麼可以這樣用呢?p明明是乙個int型別的指標,這裡怎麼可以使用p 0 這種陣列的操作呢?而且我們使用sizeof去...

C語言指標陣列和陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言指標陣列和陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...