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)
输出是一些垃圾值.
参数传递如何在这里工作?请解释.
您获得的意外结果不是由"参数传递"产生的,而是由于abc函数不返回任何值.您应该使用return k;statement来获得您期望的输出.但是对于参数传递,它们是通过值传递的,即传递的值被复制到临时位置k(仅在函数中可见),而不是在它之外修改.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |