gpt4 book ai didi

c - 如何在 C 中调用带有 "int"参数的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:22 25 4
gpt4 key购买 nike

我一直在用 C 编写代码,我需要用 int 类型的参数定义一个函数。基本上,我想检查一个数字,但是,这个数字可能是 13、15 或 16 位数字。我将数字分成一个数组,这样我就可以单独使用每个数字,并且我创建了一个 for 循环以进行一些处理。我只希望 for 循环的最大数量是一个变量。

我曾尝试编写一个 for 循环,但将最大数作为变量 R 而不是数字。问题是除非我初始化变量 R 值,否则程序不会编译,该值将在调用主函数中的函数时采用。我已将代码附加给您,如果有人可以帮助我,我将很高兴。谢谢。

int CHECK(int R);                        // Function Prototype
int main() {
...
...
var = CHECK(15); // Function called
...
...
int CHECK(int R);                 // Function definition
{
int R;
for (int z = 1; z <= R; z += 2) {
if (array[z] <= 4)
...

编译文件时出现这个错误:

credit.c:56:9: note: initialize the variable 'R' to silence this warning
int R;
^
= 0
1 error generated.
<builtin>: recipe for target 'credit' failed
make: *** [credit] Error 1

如果我必须定义R 变量,那么他的值将不会改变并且我不能将R 作为操作结果。我该怎么办?

最佳答案

你的问题叫做“变量阴影”:

您的函数参数名为 R,但在您的函数中您还有一个同名的局部变量。

局部变量“遮盖”了参数,因此每次在 int R; 行之后的代码中编写 R 时,您实际上是在引用变量和 不是参数!

只需删除局部变量,因为无论如何您都不会使用它,您的代码就可以了。

关于c - 如何在 C 中调用带有 "int"参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com