“C语言简单记”基于我以前学习过程中做过的笔记、随笔,特意整理了一下,只是简单的记录了一些比较重要的知识点,不会去深入探究,面向的是一些有语言基础的人查找阅读,还请见谅,谢谢~~~
函数
返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
函数体
}
主要作用:
1.将一个常用的功能封装起来,方便以后调用
2.提高代码重用率
形参: 在定义函数时,函数名后面的小括号()中定义的变量称为形式参数,简称形参,形参一定是变量
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
实参: 在调用函数时传入的值称为实际参数,简称实参,实参可以是常量,变量,表达式
注意点:
1) 返回值可以和返回值类型不一样,系统会对返回值进行自动类型转换(隐式转换)
2) 如果函数没有返回值,那么返回值类型就写void
3) 函数名称不能相同,形参,返回值类型不同也不行,即不能重载
4) c语言不允许函数嵌套
5) 函数可以没有返回值类型,默认返回int类型
6) 调用函数时传递的实参个数必须和函数的形参个数必须保持一致
return 0: 返回0表示程序正确结束,其他值代表程序非正常结束
argc: 系统传递进来的参数,默认为1
argv: 系统传递进来的参数的实际值,默认是程序的名称
递归练习
需求:要求用户输入一个大于0的数,如何不大于0一值提示,知道大于0为止
#include
void scanNumber();
int main(int argc, const char * argv[]) {
scanNumber();
return 0;
}
void scanNumber(){
// 接收值
printf("请输入一个大于0的数字:\n");
int number = -1;
scanf("%d", &number);
// 判断
if (number <= 0) {
scanNumber();
}else{
printf("m=%d\n", number);
}
// 递归要有明确的结束条件,防止死循环
}
用递归算法求累加和、累乘
#include
int sum(int a); // 求累加和
int mul(int b);// 求累乘
int main(){
// 接收值
printf("请输入一个大于0的数字:\n");
int number = -1;
scanf("%d", &number);
printf("sum = %d\n", sum(number));
printf("mul = %d\n", mul(number));
return 0;
}
int sum(int a){
int result = 1;
if(a == 1){
return result;
}else{
return sum(a-1) + a;
}
}
int mul(int b){
int result = 1;
if(b == 1){
return result;
}else{
return uml(b-1) * b;
}
}
函数的嵌套调用与递归调用有什么区别?
答:
函数的嵌套是语言特性,递归是逻辑思想;
函数嵌套就是允许函数中调用另一个函数,
递归通过函数嵌套来实现,自己调用自己,
总的来说,函数嵌套就是函数调用函数,递归就是函数调用自己,是函数嵌套的一个特例
更多关于iOS学习开发的文章请登陆我的个人博客www.zhunjiee.com,欢迎前来参观学习