数组类型、数组类型指针、数组指针变量
typedef int (MyarrayType)[5]; MyarrayType myArray; ==》 int myArray[5];
定义数组类型
/** myArray.c **/ #include<stdio.h> int main() { typedef int (MyArrayType)[5]; MyArrayType myArray; int i; for(i = 0; i < 5; i++) { myArray[i] = i + 1; } for(i = 0; i < 5; i++) { printf("%d ",myArray[i]); } return 0; }
数组指针 用一个指针变量指向一个数组
方法1:定义数组指针变量的方法—用(数组类型 *) 定义
/** pArray.c **/ #include<stdio.h> int main() { typedef int (MyArrayType)[5]; //定义了一个数据类型 MyArrayType myArray; //int myArray[5] 用类型定义变量 MyArrayType *pArray; //定义了一个指针变量,这个指针变量指向了一个数组 int myArray2[5]; //相当于一级指针 for(int i = 0; i < 5; i++) { myArray2[i] = i + 1; } pArray = &myArray2; //相当于二级指针 for(int i = 0; i < 5; i++) { printf("%d ",(*pArray)[i]); } return 0; }
方法2:直接声明数组类型指针
#include<stdio.h> int main() { //定义声明一个数组指针类型 typedef int (*PArrayType)[5]; PArrayType pArray; //告诉编译器 给我分配一个指针变量 int c[5]; pArray = &c; for(int i = 0; i < 5; i++) { (*pArray)[i] = i + 1; } for(int i = 0; i < 5; i++) { printf("%d ",(*pArray)[i]); } return 0; }
定义数组指针变量的第三中方法:
前两种方法通过类型定义变量
#include<stdio.h> int main() { int (*pMyArray)[5]; //直接定义一个指向数组的数组指针变量 int c[5]; pMyArray = &c; for(int i = 0; i < 5; i++) { (*pMyArray)[i] = i + 1; } for(int i = 0; i < 5; i++) { printf("%d ",(*pMyArray)[i]); } }