指针(二)-指针与函数

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

一 指针函数

返回值类型是指针的函数

#include<stdio.h>

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 = &num;
	return pn;
}

注意:

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

二 函数指针

指向函数类型得指针

#include<stdio.h>

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;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值