陣列指標

小石王發表於2018-06-08

陣列指標

#include <stdio.h>

//p3就是陣列指標
int main(){
  int ar[10] = {1,2,3,4,5,6,7,8,9,0};
  //p1,p2,p3的地址雖然一樣,但是意義不同,p3可以作為二維陣列的指標,p1和p2不可以作為二維陣列的指標,
  //指標裡光有地址資訊是不夠的,還必須有型別,才是一個完整可用的指標。
  int* p1 = ar;//指向陣列第一個元素的指標
  int* p2 = &ar[0];//指向陣列第一個元素的指標
  int (*p3)[10] = &ar;//指向整個陣列的指標,可以作為二維陣列的指標
    
  int br[2][10];
  p3 = br;

}

(gdb) p p1

$1 = (int ) 0x7fffffffe1c0 // (int ) 是指標的型別

(gdb) p p2

$2 = (int ) 0x7fffffffe1c0 // (int ) 是指標的型別

(gdb) p p3

$3 = (int ()[10]) 0x7fffffffe1c0 // (int ()[10]) 是指標的型別

相關文章