问答详情
源自:5-12 练习题

static不能用于修饰函数参数?

第一个问题,int getPeachnumebr(static int n);是错的?

第二个问题,int getPeachnumber()

                    static int n;就是对的?

第三个问题,int getPeachnumber(n)=int getPeachnumber(int n)对吗?

第四个问题,int getPeachnumber(n)这里面的形参存储方式是auto?

提问者:centrifugeSIW 2017-08-24 15:54

个回答

  • qq_大笨熊_1
    2017-08-24 16:59:29
    已采纳

    第一个是错的    

    因为C语言规定 不可以用static 做形参

    为什么这么规定,是因为没必要

    静态局部变量的特点,是生存周期不被函数限制

    每次调用函数时,静态变量还是上次退出的值。 除此外 和普通局部变量没区别

    而参数, 每次调用的时候, 形参的值其实就是实参决定的

    换句话说,每次调用函数, 形参都会被重新初始化或者说赋值

    这样的话, 用static就没什么意义了,以为完全没机会保留上次的值,必然会被重写的。 

    既然没意义,C就规定了,形参不许static

    第二个.是对的

    第三个你中间等号代表什么 值相等 还是语法 

    第四个对的


  • 新生代_白色
    2017-12-03 22:33:28

    关于第三个问题,如果你是想问在声明函数时,变量前的数据类型是否可以不写的话。

    是的,但编译器会有警告,并默认为int型。