C语言 形参 静态变量 ~~~求指教 把形参设为static型 每次调用函数 再赋值 这样应该不

C语言 形参 静态变量 ~~~求指教

把形参设为static型 每次调用函数 再赋值 这样应该不影响结果啊? 为什么书上说“C程序函数的形参不可以说明为static型变量”?

第1个回答  2013-09-21
我认为
static型变量能够保持上一次的值不变
那么下一次调用函数时,再对其赋值是无效的
因为它的值上一次的保持不变

比如:
for (i=0; i<3; i++ )
{
static j = 0; //每次循环对 j 赋值为0,可是赋值无效,输出结果还是:1 2 3
j++;
printf("%d ", j);
}
第2个回答  2013-09-21
static型变量不论在什么位置声明定义都是存放在全局数据区,仅仅只是作用范围不一样,而所谓的静态只是相对于auto类型而言,因为static的变量能够保持上一次的值不必,如在一个循环体中定义 int i;
for (i=0; i<5; i++ )
{
static j = 0;
j++;
printf("%d\n", j);
}分别输出1 2 3 4 5,而如果没有static 就是1 1 1 1 1,至于形参一般默认是auto类型追问

嗯嗯 形参是用完即扔的

本回答被提问者采纳
第3个回答  2013-09-21
额,这位学长,我刚学,不知道追问

啊,,,你是哪个学校的?

相似回答