数组的typedef 和函数的typedef

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

// 数组指针 语法 梳理
//  
//int a[10];//

//


int add(int a, int b)
{
	return a + b;
}
int main()
{
	int a[10]; //a代表的是数组首元素的地址  &a代表整个数组的地址  a+1的步长为4  &a+1步长=40 .
	//定义一个数组类型 
	{
		typedef int (myTypeArray)[10];
		myTypeArray Myarray;
		Myarray[0] = 10;
	}
	//定义一个指针数组类型 
	{
		typedef int(*PTypeArray)[10];
		PTypeArray myPArray;
		myPArray = a;
		//myPArray[0] = 20; 这句话是错误的,因为myPArray相当于二级指针,它是指向一个数组的指针
		(*myPArray)[0] = 20;
	}
	//定义一个指向 数组类型的指针 数组类的指针
	{
		int(*mypointer)[10];
		mypointer = a;
		(*mypointer)[0] = 21;
		printf("%d\n", a[0]);
	}


	//函数指针语法梳理
	//1 如何定义一个函数类型
	//2 如何定义一个函数指针类型
	//3 如何定义一个 函数指针  (指向一个函数的入口地址)

	//1 如何定义一个函数类型
	int temp;
	{
		typedef int (MyTypeFuc)(int a, int b);
		MyTypeFuc   *myfunc;
		myfunc = add;
		temp= myfunc(2, 4);
		printf("temp= myfunc(2, 4)===>%d\n", temp);
	}
	// 2 如何定义一个函数指针类型
	{
		typedef int(*MyPTypeFunc)(int a, int b);
		MyPTypeFunc  myPfunc;
		myPfunc = add;
		temp=myPfunc(4, 6);
		printf("temp=myPfunc(4, 6)===>%d\n", temp);

	}
	//3 如何定义一个 函数指针  (指向一个函数的入口地址)
	{
		int(*MyPFunc)(int a, int b);
		MyPFunc = add;
		temp=MyPFunc(3, 6);
		printf("temp=MyPFunc(3, 6)===>%d\n", temp);
	}
	system("pause");
}

  这里的加了typedef 和没有加的区别就是:加了则定义一种类型,没加则是代表的一种表现的形式。

转载于:https://www.cnblogs.com/xiaochige/p/6699879.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值