函数中的值在C中做什么?
我正在努力理解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,
#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
是typeint
。Sonum1=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");