//复习用,如有错误,请指正
1.下列代码是否存在错误?
(1)int what( ){
string s;
//...
return s;
}
(2)hi2(int i) {/*...*/}
(3)int name(int v1, int v1) /*...*/}
(4)double hello(double x) return x*x;
(1)返回值应该是int而不是string
(2)没有定义函数的返回类型
(3)参数名重复
(4)缺少{ }
2.函数实参和形参的区别是什么?形参主要分为哪两类?请举例说明。
实参:实际传递的值,可以是常量、变量或表达式
形参:定义函数时的形式参数
实参给形参传递实际值
形参分为引用形参和非引用形参
3.编写一个函数,每次调用时返回值都增加1
4.函数的形参、静态局部变量和非静态局部变量有什么区别?编写一个函数,说明他们的区别。
形参:定义函数时的形式参数
静态局部变量:一旦初始化就会一直存在,直到程序结束才销毁。作用域只存在于其定义的程序块,外部无法访问。
非静态局部变量:每次都要重新创建和销毁
5.n的阶乘
6.下面两个函数是否重定义?
void g(int *const p);
void g(const int *p);