C语言及程序设计提高例程-7 返回指针的函数

贺老师教学链接  C语言及程序设计提高 本课讲解

返回指针的函数

#include <stdio.h>
int *max(int *x, int *y)
{
    int *t;
    if(*x > *y)
        t = x;
    else
        t = y;
    return t;
}
int main()
{
    int  a, b, *p;
    scanf("%d %d", &a, &b);
    p = max(&a, &b);
    printf("max = %d \n", *p);
    return 0;
}

返回值不可以是已经失效的地址(有警告)

#include <stdio.h>
int *max(int *x, int *y)
{
    int t;
    if(*x > *y)
        t = *x;
    else
        t = *y;
    return &t;
}
int main()
{
    int  a, b, *p;
    scanf("%d %d", &a, &b);
    p = max(&a, &b);
    printf("max = %d \n", *p);
    return 0;
}
时间: 2024-10-02 13:23:48

C语言及程序设计提高例程-7 返回指针的函数的相关文章

C语言及程序设计提高例程-35 使用指针操作二维数组

贺老师教学链接  C语言及程序设计提高 本课讲解 使用指向二维数组元素的指针 #include <stdio.h> int main( ) { int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0]; p<a[0]+12; p++) { printf("%3d ",*p); } return 0; } 使用指向一维数组的指针 #include <stdio.h> int main(

C语言及程序设计提高例程-24 数组名作为函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解 用数组元素作函数实参 #include <stdio.h> int gcd(int m,int n) { int r; while(r=m%n) { m=n; n=r; } return n; } int main() { int i; int a[8]= {26,1007,956,705,574,371,416,517}; int b[8]= {994,631,772,201,262,763,1000,781}; int c[8]; for(

C语言及程序设计提高例程-4 函数的返回值

贺老师教学链接  C语言及程序设计提高 本课讲解 函数返回 #include <stdio.h> int max(int x,int y); int main() { int a, b, c; scanf(%d %d", &a, &b); c = max(a, b); printf("max=%d", c); return 0; } int max(int x, int y) { return(x>y?x:y); }

C语言及程序设计提高例程-15 小小型应用系统开发指导(三)

贺老师教学链接  C语言及程序设计提高 本课讲解 说明:     本程序在学习者仅掌握了基本数据类型和控制结构.函数的前提下设计,模拟银行储蓄系统的基本功能.     程序运行前,请在程序所在文件夹中,自建文件password.txt,保存123456作为初始密码,自建文件balance.dat,保存1000,作为初始的余额.    运行结束后,对数据所做的所有修改均可以利用文件保存下来.     与上一个版本相比,我们学习了模块化程序设计及用函数的实现方法,所以有能力重构了整个软件的结构.本程

C语言及程序设计提高例程-8 函数的声明、定义和调用

贺老师教学链接  C语言及程序设计提高 本课讲解 调用的条件--被调用的函数已存在 #include <stdio.h> #include <math.h> float max(float x, float y); int main () { float a,b,c,s; scanf("%f %f", &a, &b); s=sqrt(a); printf("sqrt is %.2f\n", s); c=max(a+b, a*b

C语言及程序设计提高例程-26 实现线性表基本操作的函数

贺老师教学链接  C语言及程序设计提高 本课讲解 删除指定位置上的数据 #include <stdio.h> #define SIZE 100 int deleteData(int[], int, int); int n=10; //数组中实际有用元素 int main() { int d[SIZE]= {1,3,9,12,32,41,45,62,75,77}; int locate, i; scanf("%d", &locate); //删除locate处的数据

C语言及程序设计提高例程-9 函数的嵌套调用

贺老师教学链接  C语言及程序设计提高 本课讲解 函数的嵌套调用:函数内调用函数 #include <stdio.h> int gcd(int n1, int n2); int lcm(int n1, int n2); int main() { int num1,num2; int iGcd, iLcm; //最大公约数和最小公倍数 printf("please input two numbers:"); scanf("%d%d",&num1,&

C语言及程序设计提高例程-25 指针作函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解 例:冒泡排序函数的新写法 #include <stdio.h> void bubblesort(int*, int); int main( ) { int i,a[10]= {3,5,9,1,3,6,-9,-7,10,12}; bubblesort(a,10); for(i=0; i<10; i++) printf("%d ", a[i]); return 0; } void bubblesort(int *p, in

C语言及程序设计提高例程-16 数组的引入

贺老师教学链接  C语言及程序设计提高 本课讲解 引子:求5位同学的平均成绩 #include <stdio.h> int main( ) { int a1, a2, a3, a4, a5; int total=0, ave; scanf("%d %d %d %d %d", &a1,&a2,&a3,&a4,&a5); total+=a1; total+=a2; total+=a3; total+=a4; total+=a5; ave=