Fra*_*ano -4 c parameters pointers function parameter-passing
有人可以解释一下C参数传递的区别吗?根据教授的说法,有4种不同的传递参数的方法
如果你能举一个例子,我将非常感谢,你的工作将受到赞扬.
呼叫按值
将值作为参数传递给函数.如果函数修改变量,则实际变量不会更改.
void fun1(int myParam)
{
myParam = 4;
}
void main()
{
int myValue = 2;
fun1(myValue);
printf("myValue = %d",myValue);
}
Run Code Online (Sandbox Code Playgroud)
myValue 永远是2.
按地址调用(指针)
void fun1(int *myParam)
{
*myParam = 4;
}
void main()
{
int myValue = 2;
fun1(&myValue);
printf("myValue = %d",myValue);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我们将地址传递myValue给fun1.因此,最终的价值myValue将是4 main().
调用 - 别名
根据我的理解,C中没有别名.它应该是C++引用机制.
全局变量/静态变量
全局变量和静态变量是存储在公共位置的变量,可由调用者和被调用者函数访问.因此,调用者和被调用者都可以访问和修改它们.
int myValue = 2;
void fun1()
{
myValue = 4;
}
void main()
{
myValue = 2
fun1();
printf("myValue = %d",myValue);
}
Run Code Online (Sandbox Code Playgroud)
你可以猜到,最后的值myValue将是4 main().
希望能帮助到你.