为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

第二个问题,int getPeachnumber()

                    static int n;就是对的?

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

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

正在回答

2 回答

第一个是错的    

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

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

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

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

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

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

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

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

第二个.是对的

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

第四个对的


9 回复 有任何疑惑可以回复我~
#1

centrifugeSIW 提问者

第三个二者是否可以互相替换而不产生任何影响?
2017-08-24 回复 有任何疑惑可以回复我~

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

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

3 回复 有任何疑惑可以回复我~
#1

慕用4518114

请问为什么第二个static int n;是对的?这种情况下不会直接把n赋值0么?
2019-06-10 回复 有任何疑惑可以回复我~
#2

慕盖茨4444243 回复 慕用4518114

这里只是定义n的类型吧,没有对它进行赋值操作
2020-02-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信