首页 > 编程笔记 > C语言笔记 阅读:50

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

注意,实例程序完全可以用更简单的形式来实现,这里只是为了帮助大家更好地理解返回值为指针的函数及其应用。

相关文章