前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针(二)-指针与函数

指针(二)-指针与函数

作者头像
木杉乀
发布2021-04-02 06:33:35
5090
发布2021-04-02 06:33:35
举报
文章被收录于专栏:木杉の小屋木杉の小屋

指针基础(二)-指针与函数

一 指针函数

返回值类型是指针的函数

代码语言:javascript
复制
#include

typedef int* Pint;
Pint function();

int main() {
	Pint p = function();
	printf("%d\n", *p);      // 结果: 0(错误代码,但是VS2019可以正常运行)
	printf("%d\n", *p);      // 结果: 一串无意义的随机数
	//此处function函数中的指针pn只能存活在函数一次调用结束
	//因此这里仅仅验证函数可以返回指针类型
	return 0;
}

Pint function() {
	int num = 0;
	int* pn = #
	return pn;
}

注意:

使用指针函数,不能返回指向栈区的指针(此处不了解关注后期文章)

二 函数指针

指向函数类型得指针

代码语言:javascript
复制
#include

void fun() {
	printf("fun is been used!\n");
}

int function(char a, int n) {
	printf("MuShan!!!\n");
	return 0;
}

int main() {
	// 返回值类型(*函数指针名)(形参类型)
	int(*Pfunction)(char, int) = function;
	char ch = 0;
	int num = 0;
	Pfunction(ch, num);

	fun();
	//  指针指向的类型* 指针名;
	//  void() ==> void(* )()
	void(*pfun1)() = &fun; // pfun1: &fun ==> *pfun1: fun
	void(*pfun2)() =  fun; // pfun2:  fun
	
	(*pfun1)();
	pfun1();

	(*pfun2)();
	pfun2();
    // 都可正常输出
	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指针基础(二)-指针与函数
    • 一 指针函数
      • 二 函数指针
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档