- 函数的设计应该遵从什么原则?
答:函数的设计应该包括函数的声明、函数的定义、函数的调用;
正解:我们说函数就是一种封装的方法,函数的设计应该遵从“一个函数仅实现一个功能”的原则,这样子我们就可以实现化繁为简的目标,将一个复杂的程序给拆解开来,变成一个个独立的功能,每个功能我们就用一个函数来实现。
1.“形参和实参,只是放在不同位置的同一个变量。”,这种说法正确吗?
答:不对,形参只有在函数定义里有作用,当出了函数体,形参什么也算不上。
不正确。它们是不同的两个变量,只是函数在调用的过程中,发生了类似“形参 = 实参”的赋值操作。
-
void 类型的函数能否使用 return 语句返回?
答:实际上void类型的函数是没有返回值的函数类型,但是你如果非要写一些return,编译器也不会报错。
正解:解析:在有返回值的函数中,return 语句的作用通常是返回函数的执行结果,并结束当前函数,让 CPU 回到调用它的位置;在没有返回值的函数中也可以使用 return 语句,例如当检查到一个错误的时候提前结束函数并返回。 -
下面是 strcpy 函数的原型,请问为何第二个参数要使用 const 修饰?
char *strcpy(char *dest, const char *src);
正解:答:dest(Destination)参数指向用于存放字符串的目标数组,src(Source)参数指向待拷贝的源字符串。dest 参数是 char * 类型,而 src 参数是 const char * 类型,说明dest 所指向的内存空间在函数中是可以改写的,而 src 所指向的内存空间在函数中只能读不能写
- 请问下面这两个函数的定义等价吗?
func(int a[], int n)
{
……
}
and
func{int *a, int n}
{
……
}
答:应该等价,数组传入函数时,实际上传入的是数组首元素的地址。
- 请问下面代码中,变量 a 和变量 b 的值打印出来分别是多少?为什么?