使用指针将值从scanf()传递到main()

问题描述 投票:0回答:1

下面的代码工作正常。它允许用户输入名为floaterror值,并通过function error_user();]保存它

#include <stdio.h>
#include <stdlib.h>


float error_user ();

int main(void)
    {   
        float error;

        printf("What error do you want?\n");

        error=error_user ();

        printf("%f\n", error);

        return 0;
    }

float error_user ()
    {   
        float error;
        scanf("%f", &error);
        return error;
    }

但是,以下功能不起作用。我正在尝试实现相同的结果,唯一的区别是我想通过指针传递值。在第二种情况下如何实现呢?谢谢!

#include <stdio.h>
#include <stdlib.h>

void error_user (float *error);

int main(void)
    {   
        float error;

        printf("What error do you want?\n");

        error_user (&error);

        printf("%f\n", error);

        return 0;
    }

void error_user (float *error)
    {   
        scanf("%f", &error);
    }

    

下面的代码工作正常。它允许用户输入一个称为error的浮点值,并通过函数error_user()保存它。 #include #include float ...

c pointers scanf
1个回答
0
投票

基于下面的@John Bode,是正确的代码。解释一下:“在第二个版本中,错误已经具有float *类型,因此您无需在scanf调用中使用&运算符。”

#include <stdio.h>
#include <stdlib.h>

void error_user (float *error);

int main(void)
    {   
        float error;

        printf("What error do you want?\n");

        error_user (&error);

        printf("%f\n", error);

        return 0;
    }

void error_user (float *error)
    {   
        scanf("%f", error);
    }
© www.soinside.com 2019 - 2024. All rights reserved.