函数

一、函数:

计算机生成了可选文字:
函 数 的 定 又 格 式 · 
返 笪 值 类 型 函 敵 名 { , , 彬 式 , 敵 , 
函 敵 函 数 对 的 功 能 代 鸝 , 
函 数 的 特 点 · 
1 . 定 又 羹 数 可 以 将 特 定 的 功 能 代 码 幫 装 起 只 
2 . 便 子 对 该 功 能 行 复 用 , 提 高 了 代 码 的 复 忤 
3 . 数 只 有 调 才 会 执 行

 

计算机生成了可选文字:
定 义 函 数 明 的 步 · 
1 . 羹 数 釣 鞔 能 是 什 么 ? 根 霪 羹 数 的 功 能 只 确 定 羹 数 的 名 字 
2 . 看 调 用 数 的 时 候 是 否 人 一 补 助 的 值 
3 . 确 定 羹 数 体 兢 行 的 功 代 码 
4 . 确 定 羹 数 的 返 叵 值 类 型

形参:定义函数的时候函数名后面小括号中的参数,称之为形参。

实参:调用函数的时候传入的参数,称之为实参。

一个函数可以有形参也可以没有形参。

注意:

1.形参变量名不能相同

2.在函数体中也不能定义和形参变量名相同的变量

3.实参的个数必须和形参相同

4.基本数据类型作为函数参数传递的时候是值传递。

return的作用:

1.结束函数

2.返回结果给调用者

3. break continue一样return后面不能写任何语句,因为执行不到。

4.返回值类型要和返回的值的类型一样。

 

  • 当函数没有返回值时,返回值类型就写void
  • 没有写返回值类型的时候,默认就是int 
  • 函数不可以嵌套。
  • 不允许有同名的函数,包括参数不一样也不行。

  • 函数声明可以重复定义。
  • 只有函数声明,没有函数的实现在编译时是没有问题的,编译器只检查语法错误,链接的时候才会查看函数是否真的实现了。
  • //return 0; 返回0代表程序正常结束,如果返回其它值,代表程序异常退出。
  • //argc 参数个数   //argv 参数内容 
  • //#include 将右边的文件拷贝到当前文件中来
  • //如果我们自己写的文件就在include后面用双引号
  • “”里面可以写路径,或 文件名.拓展名

如果是双引号首先会在当前文件夹中查找文件,如果在当前文件夹中找不到文件会到编译器的路径中找,如果在编译器中的路径中找不到回到系统的路径中去找。

 

如果使用的是clang编译器,clang设置include路径是

4.2是编译器版本):/usr/lib/clang/4.2/include

 

Mac系统的include路径有:

/usr/include

/usr/local/include

如果include后面是<>  首先会到clang设置include路径中去查找,如果找不到会去mac系统的include路径去找

二、递归:

递归:

函数实现体内再次调用函数本身。阶乘可以使用递归调用。贪吃蛇。 

Demo1:

#include <stdio.h>

//设计一个函数,计算b的n次方
int myPow(int b, int n)
{
    int result = 1;
    for (int i = 0; i<n; i++) {
        result *= b;
    }
    return result;
}

int main(int argc, const char * argv[]) {
    
    printf("%d\n",myPow(2, 2));
    
    return 0;
}

控制台打印:

4

Program ended with exit code: 0

 

Demo2:

 

#include <stdio.h>

//注意:递归不能递归的太深
int myPow(int b, int n)
{
    if (n <= 0) {
        return 1;
    }
    return myPow(b, n-1)*b;
}

int main(int argc, const char * argv[]) {
    
    printf("%d\n",myPow(2, 2));
    
    return 0;
}

控制台打印:

4

Program ended with exit code: 0

 

posted @ 2015-12-04 19:06  我就叫M  阅读(185)  评论(0编辑  收藏  举报