数组指针

数组指针

#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]) 是指针的类型

posted @ 2018-06-08 17:12  小石王  阅读(201)  评论(0编辑  收藏  举报