认真学好C语言 发表于 2021-4-12 22:02:53

指针函数

在学指针函数,想问一下这个函数怎么改能改成指针函数?

#include<stdio.h>
int f(int a,int b);
int f(int a,int b)
{
return a+b;
}
main()
{
int a,b,sum=0;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
sum=f(a,b);
printf("%d+%d=%d\n",a,b,sum);

}

yuxijian2020 发表于 2021-4-13 08:51:52

该倒是能改但是得考虑变量的生存周期就得大改...
方法很多,但是必须得考虑返回值的生存周期
#include<stdio.h>

int* f(int a, int b, int* pSum)
{
        *pSum = a + b;
        return pSum;
}

int main()
{
        int a, b;
        int sum = 0;

        printf("请输入两个数:");
        scanf_s("%d%d", &a, &b);
        f(a, b, &sum);
        printf_s("%d + %d = %d\n", a, b, sum);

        return 0;
}

#include<stdio.h>

int sum = 0;

int* f(int a, int b)
{
        sum = a + b;
        return &sum;
}

int main()
{
        int a, b;

        printf("请输入两个数:");
        scanf_s("%d%d", &a, &b);
        f(a, b);
        printf_s("%d + %d = %d\n", a, b, sum);

        return 0;
}

不管哪种,都要保证你的返回值指针所指向的变量还存在

认真学好C语言 发表于 2021-4-13 16:26:05

yuxijian2020 发表于 2021-4-13 08:51
该倒是能改但是得考虑变量的生存周期就得大改...
方法很多,但是必须得考虑返回值的生存周期



这个printf_S是啥

yuxijian2020 发表于 2021-4-13 17:24:27

认真学好C语言 发表于 2021-4-13 16:26
这个printf_S是啥

就是scanf和printf的安全版本你可以理解为就是同一个函数反正功能是一样的
页: [1]
查看完整版本: 指针函数