参数传入C函数

Van*_*rna -1 c function parameter-passing

我是新手.所以请耐心等待,

#include<stdio.h>

    int abc(int k)
    {
    k++;

    }
    int main()
    {
    int a=1;
    printf("%d",abc(a));

    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

以上程序的输出是:1

我的问题是输出不应该是'2',因为实际参数将'1'的值传递给形参,并且必须通过函数abc递增.

当我将函数调用更改为

printf("%d",abc(1));
Run Code Online (Sandbox Code Playgroud)

输出是一些垃圾值.

参数传递如何在这里工作?请解释.

Eug*_*Sh. 5

您获得的意外结果不是由"参数传递"产生的,而是由于abc函数不返回任何值.您应该使用return k;statement来获得您期望的输出.但是对于参数传递,它们是通过值传递的,即传递的值被复制到临时位置k(仅在函数中可见),而不是在它之外修改.

  • @JensGustedt以哪种方式?对我来说似乎很好,虽然很简洁. (4认同)