栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言指针函数和函数指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言指针函数和函数指针

我看傻了,所以整理一下。

指针函数

类型标识符*  函数名(参数表);

举例:int* fx(int x,int y);

 解释:

第一ta是个函数

第二指针函数的返回的是地址,ps这边没读懂?来看一个例子。

#include   
  
int* fun(int *a)  
{  
    return a;  
}  
  
int main(int argc, char **argv)  
{  
    int a = 3;  
    printf("%d", *(fun(&a)));  
    return 0;  
}  

感觉没什么作用,指针函数,代表一个函数的返回值是指针,所以void*返回值类型为void类型的地址值。

函数指针

实际我理解,可能指向变量的指针变量和指向函数的指针变量,在定义上是不同的。

  1. int(*p)(int, int);

“定义了一个指针变量 p,该指针变量可以指向返回值类型为 int 型,且有两个整型参数的函数。p 的类型为 int(*)(int,int)。 ” 

这个语句就定义了一个指向函数的指针变量 p。首先它是一个指针变量,所以要有一个“*”,即(*p);其次前面的 int 表示这个指针变量可以指向返回值类型为 int 型的函数;后面括号中的两个 int 表示这个指针变量可以指向有两个参数且都是 int 型的函数。 

 函数返回值类型 (* 指针变量名) (函数参数列表);

函数返回值类型:表示该指针变量可以指向具体什么返回值类型的函数;//返回值类型与返回值密切相关。

函数参数列表:表示该指针变量可以指向具有什么参数列表的函数。

区分:

指向变量的指针变量。int* p

指向函数的指针变量。int(*p)(int,int)

int func(int x);//声明一个函数

int(*p)(int x);//定义一个函数指针

p=func; //将func函数的首地址赋给指针变量p

#include   
int MAX(int a,int b);
int main(void)
{
	int a,b,c;
	scanf("%d%d",&a,&b);
	int (*compare)(int a,int b);
	compare=MAX;//MAX这么用没问题吗,函数名就是地址 
	c=compare(a,b);
	printf("%d",c);
	return 0;
}
int MAX(int a,int b)
{
	int z;
	z=a>b?a:b;//
	return z;
}

 其中

comepare=MAX;//第一种取值方式
compare=&MAX;//第二种取值方式

//MAX是一个函数标识符,他的名字就是他的地址,如果是函数调用,

其中中>>叠词警告

c=compare(a,b);//第一种书写方式
c=(*compare)(a,b);//第二种书写方式

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号