返回指针值的函数

返回指针型的数据 即地址

  例如: int *(int x,int y), a是函数名,调用它以后能得到一个in * 指针,即整形数据的地址,x 和 y是函数a的形参为整数

  定义返回指针的函数一般的形:

     类型名 *函数名(参数列表);

  下面通过一个例子来初步了解

#include<stdio.h>
int main()
{
    float score[][4]={{50,70,80,90},{56,89,67,88},{34,78,90,66}};
    float *search(float (*pointer)[4],int n);//函数声明
    float *p;
    int i,k;
    printf("enter the number of student:");
    scanf("%d",&k);
    printf("The scores of No.%d are:\n",k);
    p=search(score,k); //调用search函数 返回score[k][0]的地址
    for(i=0;i<4;i++)
        printf("%5.2f\t",*(p+i));
    printf("\n");

    return 0;
}
float *search(float (*pointer)[4],int n) //形参pointer是指向包含4个元素的一维数组指针变量
{
    float *pt;
    pt=*(pointer+n);
    return (pt);
}
#include<stdio.h>
int main()
{
    float score[][4]={{50,70,80,90},{56,89,67,88},{34,78,90,66}};
    float *search(float (*pointer)[4]);//函数声明
    float *p;
    int i,j;
    for(i=0;i<3;i++)  //循环三次
    {
        p=search(score+i);

        if(p==*(score+i)) //如果返回值是score[i][0]的地址 否则返回NULL
        {
            printf("No.%d score:",i);
            for(j=0;j<4;j++)
                printf("%5.2f  ",*(p+j)); //输出core[i][0]~score[i][3]的值
            printf("\n");
        }
    }
    return 0;
}
float *search(float (*pointer)[4]) //形参pointer是指向包含4个元素的一维数组指针变量
{
    int i=0;
    float *pt;
    pt=NULL;
    for(;i<4;i++)
        if(*(*pointer+i)<60)pt=*pointer; //如果有不及格课程,使pt指向score[i][0]
    return (pt);
}

 

时间: 2024-10-12 13:09:56

返回指针值的函数的相关文章

c指针 --笔记2返回指针值的函数

返回指针值的函数 一般带回指针值的函数,定义形式为: int *a (int x, int y); 看这个经典案例: #include <stdio.h> int main(int argc, char const *argv[]) { double score[][4] = {{60.0, 70.0, 80.5, 20.1}, {60.0, 70.0, 80.5, 21.1}, {60.0, 70.0, 80.5, 22.1}}; double *search(double(*pointer

善于指针---使用返回指针值的函数(续)

综合举个例子来说明一下,使用返回指针值的函数,也可以理解为利用指针传递内存. 在返回指针时,除可以返回动态内存外,还可以返回静态存储区.但是不能利用指针传递桟内存,因为桟内存函数结束时也消失了,返回的会是一些垃圾内容,无效. 基础内容见:善于指针---使用返回指针值的函数 //在返回指针时,除可以返回动态内存外,还可以返回静态存储区 #include<iostream> #include<string> using namespace std; //利用指针传值 char *Tes

编程题:返回指针值的函数,求两个数中较大的数。

#include<stdio.h> int *max(int *x,int *y) { int *q; if(*x>*y)  q=x; else  q=y; return q; } void main() { int a,b,*p; scanf("%d,%d",&a,&b); p=max(&a,&b); printf("%d,%d,max is %d\n",a,b,*p); } 编程题:返回指针值的函数,求两个数中较

C语言基础学习7:返回指针值的函数

一个函数可以返回一个整型值.字符值.实型值等,也可以返回指针型的数据,即地址,返回的是指针类型. 返回指针值的函数的一般定义形式为; 数据类型 *函数名(参数列表) 例如: int *a(int x, int y); a作为函数名,调用它之后能得到一个指向整型数据的指针(地址). ()优先级高于*,因此a先与()结合,这是函数形式,返回值为指针形式. 1 #include <stdio.h> 2 float *search(float (*pointer)[4]); 3 float *sear

指针系统学习7-返回指针值的函数

1.返回指针值的函数 一个函数可以带回一个整型值.字符值.实型值等,也可以带回指针型的数据,即地址.其概念与以前类似,只是带回的值的类型是指针类型而已. 这种带回指针值的函数,一般定义形式为        类型名  *函数名(参数表列); 例如:   int *a(int x,int y); 例题:有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩.用指针函数来实现. #include <stdio.h> void main() { double sc

37 py为什么要使用函数函数中添加文本注释 没有返回值的函数

第一课:为什么要使用函数 首先 要知道 本课程的主要讲解的内容为: 1.为什么要创建函数 2.***函数的概念是:将一段可能别重用的代码封账到一个代码段里面,然后通过函数的参数 ,控制函数的动态部分.// 如何来定义python中的函数和使用函数 *** 3.如何创建一个函数 4.如何为函数添加文档注释,如何获取函数的文档注释 5.函数如何返回一个值 6.改变函数的参数值 7.关键字参数与参数默认值 8.可变参数 9.如何将序列中的元素单独作为参数值传递给函数 10.函数中的作用域 11.递归函

【C语言】函数指针与回调函数

在C语言中:指针是C语言的特色,有着各种各样的指针,普通的变量指针,常量指针,数组指针,指针数组,函数指针,指针函数.我们就讲一下函数指针与回调函数吧 首先关于函数指针,其实很简单. 对于一个函数指针来说,顾名思义,就是一个指向函数的指针,需要知道的是,对于指针而言,他总是存储一块地址,地址里面有着一个,一组,或者一块数据,在函数中,函数的存储是放在代码段的,每个函数都有着一个函数首地址,调用了这个地址相当于调用的这个函数. 具体的可以观看我的这篇博客,其中就通过在内存阶段改变栈帧返回值,成功的

POJ 2828 poj 2828 Buy Tickets 【树状数组,已知前n项和为K,返回n值】

题目链接:http://poj.org/problem?id=2828 在一个队列中,一个人想要插队,告诉你每个新来的人会插在i个人后面,求出最后的队列. 如果我们用模拟的话,那么时间复杂度肯定是超了:想想,如果我们逆序,那么最后来的人的位置一定是固定的,这样的话,我们将问题转化成逆序扫描给出数据,插在i个人后面这个数据就变成了在这个人前面需要留出多少个空位.如此我们只需要用树状数组记录前n项总共有多少个空位,每扫描一个数据,就找出能使得他前面正好有i个空位. 这题用树状数组或者线段树都可以,今

函数指针,函数指针数组,函数返回值为函数指针

函数的名字就是函数的首地址:定义函数指针; int (*p)(int ) p为函数指针变量名字,int 为函数的返回值类型为int型:(int)为函数的形参类型为int型, 注:因为优先级所以要用(*p),否则就会p先和后面的()结合为int*p(int),意思就变为p(int)函数的返回值为int* 注:main2()函数中   int (*p[])(int ,int )  为一维数组,下面写错了, #include<stdio.h> #include<stdlib.h> int