c - 函数中的变量初始化

标签 c function initialization

我对编码还很陌生,目前正在学习 C。在我的 C 编程课上,我的老师给了我们编写一个程序的任务,该程序使用一个函数,该函数输入五个整数并打印最大的整数。该程序即使对我来说也相当简单,但我遇到了一些问题,希望得到一些建议。

#include <stdio.h>

int largest(int x);

int main(void) {
    int integer1;

    largest(integer1);

    return 0;
}

int largest(int x) {
    int i;

    for (i = 0; i < 5; i++) {
        printf("Enter an integer: ");
        scanf_s("%d", &x);
    }

    return x;
}

这是我编写的代码。我遇到的主要问题是在我的主要方法中,IDE 告诉我初始化 integer1 的值。但是,我不太确定该怎么做,因为我应该通过 scanf_s 函数在 largest() 方法中输入值。我该如何解决这个问题?

最佳答案

问题就在这里,警告信息是警告你使用未初始化的自动局部变量值的潜在陷阱。你打了个电话

  largest(integer1);

但您忽略了返回值,因此 integer1 仍未初始化。

请记住,鉴于 largest()x 是传递给该函数的实际参数的本地副本,所做的任何更改x 不会反射(reflect)给调用者。

也就是说,您的代码远未达到您的要求,抱歉。到达那里的一个简短想法是

  • 创建一个函数。
  • 创建一个变量(例如,result)并用最小可能的整数值初始化,INT_MIN
  • 循环 5 次,获取用户输入,与 result 值进行比较,如果发现输入的值更大,则将其存储到 result 中,否则继续。
  • 返回结果

关于c - 函数中的变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43321410/

相关文章:

c++ - 为什么 RGBTRIPLE 和 RGBQUAD 按 BGR 顺序存储数据?

c - 下面的代码可能有什么问题,在 c 中给出了段错误

c - 对一维数组进行排序的函数不起作用?

c - 密码功能不起作用

c - 如何在C中将数组初始化为0?

c++ - 如何使用 CreateProcess 或 ShellExecute 执行管道命令

javascript - HTML 如何使用 javascript 函数将输入标记添加到有序列表

scala - Scala List 映射函数的变体

c++ - clang++ 内存清理器报告未初始化值的使用

c++ - 为什么第一行出现了除零以外的其他值?