首页 > 其他 > 详细

指针进阶

时间:2021-04-09 16:15:22      阅读:16      评论:0      收藏:0      [点我收藏+]
技术分享图片

我们通过一个例题来了解函数指针

int Add(int x, int y) {
    int z = x + y;
    return z;
}
int main() {
    int a = 10;
    int b = 20;
    int sum = Add(a, b);
    printf("%d", sum);
    return 0;
}

这个我们的一个Add函数,我们函数也是有地址的,而且以下两种方法均能打印出函数的地址 ,我们的函数名就是地址

printf("%p",Add);
printf("%p",&Add);

那我们把函数的地址怎么存起来呢?我们知道存放地址的叫指针,那么存放函数地址的叫函数指针,那么我们函数指针怎么来写?

int (*pa)(int,int)=Add;
pa==Add;pa就是一个函数的地址,
printf("%p",Add);
printf("%p",pa);
打印输出结果一样

技术分享图片

解析:

技术分享图片

应用:利用函数指针来调用函数

int Add(int x, int y) {
    int z = x + y;
    return z;
}
int main() {
    int a = 10;
    int b = 20;
    int(*pa)(int, int) = Add;
    printf("%d\n",pa(2,3));
    printf("%d\n", (*pa)(4, 6));
    printf("%d\n", Add(2, 3));
    return 0;
}

技术分享图片
这三种方法都是一样的概念,调用Add函数,把参数传入Add函数中,然后进行打印输出。

我们来看两个例题:
技术分享图片
这则表达式表达的意思是什么???
解析:

技术分享图片
代码二:
技术分享图片

技术分享图片

指针进阶

原文:https://blog.51cto.com/u_15100290/2694393

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!