注册 登录
编程论坛 C++教室

函数默认参数的问题?

newyj 发布于 2008-09-12 20:27, 724 次点击
函数默认的参数 也是在调用时 分配内存吗?
8 回复
#2
守鹤2008-09-12 21:50
我认为是分配内存的
#3
blueboy820062008-09-12 22:57
不知道是不是在调用时分配...
#4
中学者2008-09-13 10:47
int f();
int g(int i=0);
int (*fun_1)() = f; //OK
int (*fun_2)() = g; //not OK
int (*fun_3)(int) = g; //OK;
很明显,默认参数只是个便宜事儿..。和其他函数一样...只是压参数的时候如果用默认值就压默认值,如果自己赋值就压自己的值.
#5
newyj2008-09-13 12:17
谢谢楼上的回答
也就是说 默认参数也只是在 调用时 才分配内存的
不过 没有默认参数 是在 调用 函数时 主调函数传递给 被调函数 形参的值 这时 才知道 再分配内存
而 有默认参数的时候 主调函数在没有 调用函数时 那默认参数在那里保存
#6
blueboy820062008-09-13 12:32
回复 4# 中学者 的帖子
哦,学习了。。。
#7
blueboy820062008-09-13 12:34
回复 5# newyj 的帖子
LZ干嘛不用标点符号啊? 用那么多空格,看着费劲。。。
#8
zhong07111012008-09-14 17:36
学习了啊
#9
fjfhnui2008-09-16 21:41
函数的形参不占用空间,但是实参占用
1