您的位置:首页 > 编程语言 > C语言/C++

黑马程序员——C语言之函数与手动编译执行C程序

2015-06-29 15:36 302 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

7.产生随机数

①函数:arc4random_uniform(x) 产生一个0到X之间的整数(包含0,不包含X);

②使用arc4random_uniform函数要先导入<stdlib.h>;

③产生m到n之间的随机数: arc4random_uniform(n-m+1)+m;

8.函数

①概述:C源程序是由函数组成的。用户可以把自己的算法变成一个个相对独立的函数模块,然后用调用的方法来使用函数,所以也把C语言成为函数式语言。

②分类

1) 从函数定义角度来看,可以分为 库函数 和 用户定义函数;

2) 语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可把函数分为 有返回值函数 和 无返回值函数;

3) 从主调函数和被调函数之间数据传送的角度,又可分为 无参函数 和 有参函数;

4) C语言提供了极为丰富的库函数,这些函数又可从功能角度作以下分类:

字符类型函数;

转换函数;

目录路径函数;

诊断函数;

图形函数;

输入输出函数;

接口函数;

字符串函数;

内存管理函数;

数学函数;

日期和时间函数;

进程控制函数;

其他函数;

③注意:

int n;

void xxx(int n) {

}

//此时有两个变量n,一个为全局变量,一个为局部变量。在函数xxx里面,会自动屏蔽全局变量n的作用域。

④参数:

1)定义函数括号后的参数叫形式参数,简称形参;

2)调用函数括号后的参数叫实际参数,简称实参;

3)定义函数后,不会立即为形参分配存储空间,在调用时才会分配;

4)定义函数的内部,不能定义与形参同名的变量;

⑤return

1)return 常量: return 0;

2)return 表达式: return a=5; return a>3;(返回1或0) return a+b;

3)如果函数返回值和函数定义的返回类型不一致,以定义的返回类型为标准;

4)如果返回值类型为整形,在定义函数时可省略不写,如sum() {};

⑥函数的声明

1)是为了告诉编译器这个函数已经存在了,告诉编译器函数返回值的类型;

2)声明函数: int max(int x,int y)或 int max(int,int);

3)如果函数的返回值类型为int,可以不用声明此函数;

4)如果函数写在main函数之前,也不用声明该函数;

5)全局函数声明:写在代码最前,其中所有地方都能使用这些函数;

⑦函数的调用

1)函数的调用可以成为另一个函数的实参; max(max(1,2),3);

2)函数名不能和变量名同名; int max = max(4,6); 错

⑧递归函数

1)一个函数在它的函数体内调用它自身称为递归调用;

2)为了防止递归函数无休止调用,在函数内部应该存在让递归结束的条件;

3)递归函数的存在条件:1.存在自己调用自己; 2.存在一个条件让递归结束(否则为死循环); 3.能够找到一个规律,让解决问题的规模缩小;

4)内存栈:先进后出; 递归是先压栈再出栈;

5)一个递归有递推阶段和迭代计算;

9.常见的unix命令

①MAC系统采用的是UNIX文件系统,所有的文件都放在根目录/下面,因此没有windows分盘概念,

因为MAC系统是基于UNIX系统,因此可以在“终端”中输入一些UNIX指令来操作Mac系统。

②常用的unix指令:

ls: 列出当前目录下的所有内容(文件\文件夹)

pwd: 显示出当前目录的名称

cd: 改变当前操作的目录

who: 现实当前用户名

clear: 清除所有内容

mkdir: 创建一个新目录

rm: 删除文件

rm -r: 删除文件夹 -f 强制删除

touch: 创建文件

vi /open: 打开、创建文件 -q 退出, -wq 保存并退出, -q! 强制退出 ,i 进入编辑模式,esc 退出编辑模式, :wq保存退出

cat/more: 都可以查看文件内容

方向键: 查看历史命令

③手动编译执行C程序:

touch hello.c -> 创建了一个C文件,然后写代码

cc -c hello.c -> 编译C文件,生成了hello.o目标文件

cc hello.o -> 连接库函数,生成了a.out输出文件A

./a.out -> 运行a.out文件,执行程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: