C语言函数返回指针(附带实例)
在 C 语言程序中,指针变量也可以指向一个函数。函数在编译时会被分配一个入口地址,该入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。
一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与之前介绍的类似,只是带回的值的类型是指针类型而已。返回指针值的函数简称为指针函数。
定义指针函数的一般形式如下:
【实例】求长方形周长。输入长和宽,求长方形的周长,使用返回值为指针的函数解决。代码如下:
一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与之前介绍的类似,只是带回的值的类型是指针类型而已。返回指针值的函数简称为指针函数。
定义指针函数的一般形式如下:
类型名 *函数名(参数表列);例如:
int* fun(int x,int y)fun 是函数名,调用它以后能得到一个指向整型数据的指针。x 和 y 是函数 fun 的形式参数,这两个参数均为基本整型。函数名前面有一个“*”,表示此函数是指针型函数。类型说明是 int,表示返回的指针指向整型变量。
【实例】求长方形周长。输入长和宽,求长方形的周长,使用返回值为指针的函数解决。代码如下:
#include <stdio.h> int *per(int a, int b); int Perimeter; int main() { int iWidth, iLength; int *iResult; printf("请输入长方形的长:\n"); scanf("%d", &iLength); printf("请输入长方形的宽:\n"); scanf("%d", &iWidth); iResult = per(iWidth, iLength); /* 调用函数 per */ printf("长方形的周长是:"); printf("%d\n", *iResult); return 0; } int *per(int a, int b) /* 自定义求周长函数 per,返回值为指针 */ { int *p; p = &Perimeter; Perimeter = (a + b) * 2; return p; /* 返回指针 */ }程序运行结果为:
请输入长方形的长:
36
请输入长方形的宽:
30
长方形的周长是:132
注意,实例程序完全可以用更简单的形式来实现,这里只是为了帮助大家更好地理解返回值为指针的函数及其应用。