函数中的值在C中做什么?

函数中的值在C中做什么?,c,function,C,Function,我正在努力理解C编程中的函数!假设我有以下功能: #include <stdio.h> int fun_1(int num1, int num2); int main(void) { int num1; printf("How many numbers? \n"); num1 = fun_1(1,10); printf("Value is %d \n", num1); } int fun_1(int num1,

我正在努力理解C编程中的函数!假设我有以下功能:

#include <stdio.h>
int fun_1(int num1, int num2);
int main(void) {

        int num1;

        printf("How many numbers? \n");

        num1 = fun_1(1,10);

        printf("Value is %d \n", num1);
}

int fun_1(int num1, int num2) {

        int intValue;

        if (num1 < 1 || num2 > 10) {

                printf("Wrong Number \n");

                while (num1 < 1 || num2 > 14) {
                        printf("Enter number between 1 and 10: ");
                        scanf("%d", &intValue);
                }
        return intValue;
        }
}

线
num1=fun_1(1,10)
调用带有参数1和10的函数
fun_1
,然后将
num_1
赋值给其返回值


文字可以是函数参数,也可以是变量。该函数只看到您传递给它的任何参数的值,因此它实际上与传递两个具有等效值的变量相同。

它与下面的示例类似

int x, a = 2, b = 4;

x = a + b;   //this uses variables


使用变量传递值(
num1
num2
),或直接传递它们(
1
10
)。都一样



这意味着无论
fun_1()
返回什么,都将保存在
num1
变量中。

从技术上讲,函数的参数是表达式。表达有许多不同的形式。它们可以是变量,比如

 value = fun_1(num1, num2);
 value = fun_1(1, 12);
或者它们可以是常量,比如

 value = fun_1(num1, num2);
 value = fun_1(1, 12);
或者甚至使用其他表达式包含运算符:

 value = fun_1(fun_1(42, 1) * 3, sizeof "foo");

请注意,表达式必须具有兼容的类型。接受整数值的函数不接受字符串文字或指针。如果你只买了一本学习C语言的书,它应该是Kernighan和Ritchie编写的C编程语言第二版。

你将
fun\u 1
的返回值赋给
num1
。您应该阅读一本关于C的基本书籍。但是您在
printf(“错误号码”)中使用了类似的函数调用。C中不要求只传递变量。如果注意到返回的
fun\u 1
是type
int
。So
num1=fun_1(1,10)
只需将从
fun_1
返回的整数赋值给
num1
。(与
a=b
相同,
a
为num1,
b
为乐趣1。)您的
乐趣1
正确吗?它看起来要么运行到无限循环中,要么返回一个未初始化的值。@ZoffDino或者它不会返回与本例类似的值,因为
if
为false。我建议将“常量”替换为“文本”。常量还描述
常量int
s,依我看。
 value = fun_1(fun_1(42, 1) * 3, sizeof "foo");