举例说明返回指针值的函数

#include <stdio.h>
#include <string.h>


int main() 
{
    float score[][4] = { {60,70,80,90},{56,89,67,88},{34,78,90,66} };
    float* search(float(*pointer)[4], int n);
    int i, k;
    float* p;
    printf_s("enter the number of stustdent:\n");
    scanf_s("%d", &k);
    p=search(score, k);
    for (i = 0;i < 4; i++)
    {
        printf_s("%4.1f,", *(p + i));

    }

    return 0;

}

float* search(float(*pointer)[4], int n)
{
    
    float* pt;
    pt = *(pointer + n);
    return (pt);
}

大概有这么几种:

  1. 申请某种类型的内存空间,返回内存空间地址;在另一处进行释放。好处是封装申请/释放细节;

  2. 返回全局变量的地址;比如单例模式中,返回全局的实例;

  3. 以指针返回公共内存的位置;比如模块化后,一组独立模块处理接口返回理结果;