数组指针和函数指针详解

数组指针和函数指针两个都有三种用法,形式也类似
1、定义一个数组类型
2、定义一个数组指针类型
3、定义一个指向数组类型 的指针  数组类的指针
  
  
void main()
{
int a[10];//a代表的是数组首元素的地址,&a代表整个数组的地址,步长不一样
//定义一个数组类型
typedef int (myTypeArray )[10];
myTypeArray myArray;
myArray[0]=10;
cout<<myArray[0]<<endl;
 
//定义一个指针数组类型
typedef int (*PTypedef)[10];
PTypeArray myPArray;//sizeof(int)*10
myPArray=&a;
(*myPArray)[0]=20;
cout<<a[0]<<endl;
 
//定义一个指向 数组类型的指针 数组类的指针
int (*MyPointer)[10];//变量 告诉C编译器给我分配内存
MyPointer =&a;
(*MyPointer)[0]=40;
cout<<a[0]<<endl;
 
 
}
函数指针基本语法梳理
1、如何定义一个函数类型
2、如何定义一个函数指针类型
3、如何定义一个函数指针(指向一个函数的入口地址)

   
   
int add(int a,int b)
{
cout<<"func add......"<<endl;
return a+b;
}
void main()
{
add(1,2);
 
//定义一个函数类型
typedef int (MyFuncType)(int a,int b);//定义一个类型
MyFuncType *myPointerFunc=NULL;//此处必须声明一个指针变量,不能直接声明这个类型的变量
//MyFuncType myPointerFunc=add;//err
myPointerFunc=&add;
myPointerFunc(3,4);//间接调用
 
myPointerFunc=add;//这样也可以,兼容历史版本的原因
myPointerFunc(3,4);//间接调用
 
//定义一个函数指针类型
typedef int (*MyPointerFuncType)(int a,int b);
MyPointerFuncType myPointerFunc=add;
//MyPointerFuncType myPointerFunc=&add;折两种赋值方法均可
myPointerFunc(5,6);
 
//定义一个函数指针
int(*MyPonterFunc)(int a,int b//定义一个变量
MyPonterFunc=add;
MyPonterFunc(7,8);
 
system("pause");
 
}










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值