C 将静态变量作为参数传递给函数

C 将静态变量作为参数传递给函数,c,static,C,Static,将静态变量作为参数传递给函数是否有问题?程序打印了10。那么,静态变量是否也像往常一样通过值传递 #include<stdio.h> int main() { static main; int x; x=call(main); printf("%d %d",x,main); } int call(int address) { address++; return address; } #包括 int main() { 静总管; int

将静态变量作为参数传递给函数是否有问题?程序打印了10。那么,静态变量是否也像往常一样通过值传递

#include<stdio.h>
int main()
{
    static main;
    int x;
    x=call(main);
    printf("%d %d",x,main);
}
int call(int address)
{
    address++;
    return address;
}
#包括
int main()
{
静总管;
int x;
x=呼叫(主);
printf(“%d%d”,x,main);
}
整数呼叫(整数地址)
{
地址++;
回信地址;
}

是的,静态变量的传递方式与任何其他变量一样


但是,当您使用与函数相同的名称命名变量时,我希望您会出现一些编译错误。

使用静态传递变量没有区别

注意,您需要在代码中包含类型:
static int main


我不会将变量命名为
main
,因为这可能是一个保留关键字。

请注意,C对所有内容都使用按值调用。改变call中的论点不会有任何效果。我不喜欢这种措辞。变量的传递和表达式的传递一样,这就是问题所在。在这里,是否只有变量的值被推到堆栈上,函数是否得到一个副本似乎没有什么帮助。而且“静态变量像任何其他变量一样被传递”的措辞仍然很粗俗,没有细化或澄清。因此,你能比说你不喜欢我的措辞更深入地表达你的担忧吗?“传递变量的方式和传递表达式的方式一样。”-这样,我就不需要了。
main
不是保留标识符,您可以使用它来声明变量。