初識指標易混淆點(二)
阿新 • • 發佈:2021-02-17
探究問題
1.指標的運算
①指標加減整數
指標每加一個整數,就是往後訪問了一個該型別的位元組數。
int main()
{
int arr[5] = { 0 };
int *p = arr;
int i = 0;
for (i = 0; i < 5; i++)
{
*(p + i)=i;
}
return 0;
}
②指標減指標
指標減指標算出來的絕對值是兩個指標間的元素個數。
前提條件,兩個指標指向的是同一塊相同的空間,也就是說兩個指標是同一個陣列的。
int main()
{
int arr[10] = { 0 } ;
printf("%d\n", &arr[9] - &arr[0]);
return 0;
}
③指標和陣列的關係
陣列不是指標,指標也不是陣列,陣列是可以通過指標來訪問的
int main()
{
int arr[5] = { 1, 2, 3, 4, 5 };
int *p = arr;
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%d ", *(p + i));
}
return 0;
}
④二級指標
簡單的來說,二級指標就是存放一級指標的地址
int main ()
{
int a = 10;
int *p = &a;
int * *pp = &p;
printf("%d", pp);
return 0;
}
⑤指標陣列
顧名思義,就是存放指標的陣列,本質是一個數組
int main()
{
int a = 10;
int b = 20;
int c = 30;
int *arr[3] = { &a, &b, &c };
return 0;
}