C指针_自定义数组和自定义函数

自定义数组和自定义函数

数组类型的语法。

int a[10];
{
	//定义一个数组类型。int a[10]
	typedef int(myTypeArray1)[10];
	myTypeArray1 myArray;
	myArray[0] = 10;
}

//定义一个指针数组类型

typedef int(*PTypeArray)[10];
PTypeArray myPArray;
myPArray = &a;
*myPArray[0] = 20;
printf("myPArray%d", *myPArray[0]);

//定义一个指针数组类型的指针

int(*PTypeArray2)[10];
PTypeArray2 = &a;
*PTypeArray2[0] = 40;
printf("myPArray%d", *PTypeArray2[0]);

输出结果:40。

自定义函数

定义一个函数类型
//间接调用。

int add(int a, int b)
{
	printf("func add");
	return a + b;
}
    {
    	typedef int (MyFuncType)(int a, int b);
    	MyFuncType *myPointerFunc = NULL;
    	myPointerFunc = &add;
    	myPointerFunc(3, 4); //简介调用。
    }

定义一个函数指针类型
//定义一个函数指针类型

{
	typedef int(*MyPointFuncType)(int a, int b);
	MyPointFuncType myPointer;
	myPointer = add;
	myPointer(5, 6);

}	

//直接定义函数指针
{
int(*MyPointerFunc)(int a, int b);
MyPointerFunc = add;
MyPointerFunc(7, 8);
}

C语言实现C++多态的效果

int myadd(int a, int b) //任务的实现者。
{
	printf("func add\n");
	return a + b;
}
int myadd2(int a, int b) //任务的实现者。
{
	printf("func add2\n");
	return a + b;
}
int myadd3(int a, int b) //任务的实现者。
{
	printf("func add3\n");
	return a + b;
}
int myadd4(int a, int b) //任务的实现者。
{
	printf("func add4\n");
	return a + b;
}
//定义了一个函数类型。
typedef int(*MyPointFuncAdd)(int a, int b);

int MainOp(MyPointFuncAdd myFuncAdd)
{
	int c= myFuncAdd(5, 6);
	return c;
}
int MainOp2(int(*MyPointerFuncAdd)(int a, int b))
{
	int c=MyPointerFuncAdd(5, 6);
	return c;
}
//间接调用

void main()
{
	/*
	myadd(1,2);
	MyPointFuncAdd myFuncAdd = NULL;

	myFuncAdd = myadd;
	myFuncAdd(3, 4);//间接调用。

	MainOp2(myadd);
	MainOp(myadd);
	//在mainop框架没有发生任何变化的情况下,可
	*/
	MainOp2(myadd2);
    //在mainop没有发生任何变化的情况下...可以

	printf("aaa");
	system("pause");}

注:上边的代码实际上任务的调用者和任务的实现者分开调用了。

刘备利用周瑜、曹仁厮杀之际,乘虚袭取了南郡、荆州、襄阳,以后又征服了长沙等四郡。周瑜想想十分气恨,正无处报复以夺还荆州。不久,刘备忽然丧偶,周瑜计上心来,对孙权说:“您的妹妹,美丽、刚强,我们以联姻抗曹名义向刘备招亲,把他骗来南徐幽禁,逼他们拿荆州来换。”孙权大喜,郎派人到荆州说亲。
刘备认为这是骗局,想要拒绝,诸葛亮笑道:“送个好妻子上门何不答应?您只管去东吴,我叫赵云陪您去,自有安排,包您得了夫人又不失荆州。”
接着,诸葛亮暗暗关照赵云道:“我这里有三个锦囊,内藏三条妙计。到南徐时打开第一个,到年底时打开第二个,危急无路时打开第三个。”
第一个锦囊
一到东吴就拜会乔国老
第二个锦囊
刘备被孙权设计留下就对他谎称曹操大军压境
第三个锦囊
被东吴军队追赶就求孙夫人解围
如下图:
在这里插入图片描述
在这里插入图片描述
为什么能实现回调的效果?
typedef int(*MyPointFuncAdd)(int a, int b);

把函数的参数函数返回值提前做了一个约定。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值