数组类型与函数指针基本语法知识

定义一个数组:

int a[10] = {0};

a 代表数组寿元的地址,a+1的步长为4

&a 代表整个数组的地址 &a+1 步长为40

数组类型基本语法知识梳理

{
	//定义一个数组类型
	typedef int (myArrayType)[10];
	myArrayType myArray;
	myArray[0] = 10;
	myArray[1] = 20;
	printf("定义一个数组类型:%d %d
", myArray[0], myArray[1]);
}

{
	//定义一个指针数组类型
	typedef int (*myPArrayType)[10];
	myPArrayType myArray2 = &a;
	(*myArray2)[0] = 10;
	(*myArray2)[1] = 20; //通过指针操作数组
	printf("定义一个指针数组类型:%d %d
", a[0], a[1]);
	
}

{
	//定义一个指向数组类型的指针 数组类的指针
	int (*myPArrayType)[10]; //定义变量,告诉c编译器分配地址
	myPArrayType = &a;
	(*myPArrayType)[0] = 100;
	(*myPArrayType)[1] = 200; //通过指针操作数组
	printf("定义一个指向数组类型的指针: %d %d
", a[0], a[1]);
}

函数基本语法知识梳理

{
	//如何定义一个函数类型
	typedef int (myFuc)(int a, int b);
	myFuc *myFucc = NULL; //定义了一个指针,指向某一种类的函数
	
	myFucc = &add;
	myFucc(2,4); //间接调用
	myFucc = add; //c逐渐完善,兼容历史版本
	myFucc(3,4);
}

{
	//如何定义一个函数指针类型
	typedef int (*myFucType)(int a, int b);
	myFucType myPFuc; //定义一个指针
	myPFuc = add;
	myPFuc(5,6);
}

{
	//如何定义一个 函数指针 (指向一个函数的入口地址)
	int (*myFucType)(int a, int b); //定义了一个变量
	myFucType = add;
	myFucType(6,3);
}

  

 

原文地址:https://www.cnblogs.com/porkerface/p/11394263.html