C语言强化_day02

typedef int A[10];//A;数组类型

A b;//int b[10],数组类型变量,普通变量

A *p;//数组类型定义数组指针变量

typedef int (*P)[10];//数组指针类型

P  p;//数组指针变量

int (*q)[10];//数组指针变量

一、数组指针和指针数组

  •   指针数组;是一个数组,数组每个元素都是指针    //[]优先级比*高,main函数里面的char *argv[]就是一个指针数组
  • 数组指针;是指向一个数组的指针 (指向一维数组整个数组而不是数组首元素地址)
  1. 定义数组指针变量的三种方式 // 1,先定义数组类型,再根据类型定义指针变量。//2,typedef int A[10];//A数组类型 //3,A *p = NULL;//P数组指针类型变量 //4,int a[10],a代表首元素地址,&a代表整个数组首地址(数组指针,数组多长跳多长)
  2.   先定义指针数组类型,再根据类型定义变量  //和指针数组写法类似,多了()。()和[]优先级一样,从左到 右。()有指针,他是一个指针,[]。指向数组的指针,它有typedef,所以他是一个数组指针类型。//int a[10],typedef int (*p)[10](10为 步长,需要与数组一致),p q;q = &a;
  3. 直接定义数组指针变量 //int (*q)[10];

猜你喜欢

转载自www.cnblogs.com/codezhj/p/11645098.html