-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
视频六:
头文件包含函数库
自定义函数使用的三个步骤:1、声明;2、定义函数;3、电泳函数;
自定义函数
无参无返回值函数
无参有返回值函数
有参有返回值函数
有参无返回值函数、
1、无参无返回值函数
一半形式如下:
void函数名(){
声明部分 //定义局部变量
语句
}
2\无参有返回值函数
返回值类型 函数名(){
一般形式如下:
声明部分
语句
return返回值类型变量或常量
}
3、有参无返回值函数定义
一般形式如下:
void函数名(形式参数表列){
声明部分
语句
}
10、函数的返回值
函数的值被调用之后,执行函数中的程序段所取得的病返回给程序。
被调函数返回给主调函数的值。
1)函数返回值,用到一个关键字return
2)return常量;return 0;
return表达式;return a=5;returna>5;
3)return (常量/变量/表达式)可以加括号也可以省略
11、函数的声明
再调用函数之前,对被调用函数进行说明。
函数使用的流程
声明-----》定义------》调用
函数的声明:
告诉编译器,这个函数已经存在,告诉编译器北调函数的返回值。以便在主调函数中处理北调函数返回的数据。、
函数声明的格式:
把被调函数的头部拷贝一份加上分号。
函数声明的注意事项:
1)如果函数的返回值是int类型,则不需要函数声明。
2)如果被调函数写在了主调函数之前呢,则可以不用声明。
15、递归调用
一个函数在它自己中调用自己
#include <stdio.h>
//omit code :function definition
//function definition
int getAge(intn){
int age;
if (n == 1){
age = 10;
}
else{
age = getAge(n-1)+2;
}
return age;
}
int main(){
int num;
printf("please enter then's time:\n");
scanf("%d",&num);
printf("the first man'sage is: %d.",getAge(num));
return 0;
}
解释上面的例子:
如果n=1,则age=10,return 10 = age,也就是说整个getAge黑匣子的值是10;
如果n=2,则会循环else里面的getAge,判断发现2-1=1要循环自己的ifn==1,gu getAge的黑匣子值为10,但因为是返回最顶层getAge的值要加2,所以最顶层黑匣子的值是12.
17、Unix常用命令
ls:显示当前目录的名称
#include 搜索顺序:当前目录---》编译器目录---》系统目录---》报错
当前目录是和main.c的同意文件夹目录。
编译器目录是include目录。
3、模块化编程
我们把功能相似的函数封装到不同的文件中
.c C语言的源文件
.h (header)头文件
1)方法的声明 但不能实现方法
2)声明变量
3)声明结构体
好处:
1)用的时候,只需要包含.h文件,对外隐藏文件的实现。
2)团队的分工和协作
3)可以把功能细化分成若干个模块。
视频七:
2、#include指令
<>表示包含的是系统的头文件。
""表示包含的用户自己书写的文件,可以是头文件,也可以是普通稳文件。
#include是一个预处理指令,不是一个语句,不需要;
作用是:把要包含的文件的内容拷贝到当前书写的
6、进制
二进制:0000,0010,0100,1000
printf十进制,八进制,十六进制;
%d %o %x
C语言不提供打印二进制。
一个字节占8位。
10、机器数和真值
一个数再计算机中的二进制标识,叫做这个数的机器数。最高位存放符号,正数为0,负数为1.
11、原码、反码、补码的基本概念
数据再计算机内部是以补码的形式存储的
反码是符号位不变,其余各位取反。
12、位运算
用于整数的二进制之间的运算
& | 按位与 | 如果两个位进行&操作,同1结果就为1,有0结果就为0 |
| | 按位或 | 如果两个位进行|操作,结果就为1,有0则为0; |
~ | 按位取反 | 1变0,0变1 |
>> | 右移位 | 移出去的部分要舍弃,高位要补符号位,如果是正数补0,是负数补1,右移位不会改变一个数的正负性。 |
<< | 左移位 | 各二进位全部左移n位,高位丢弃,低位补0,左移可能会改变一个数的正负性。 |
^ | 按位异或 | 相同为0,不同为1 |
18、获取变量地址的方法
Printf("%d",&a);
分配地址的时候,从高地址向低地址分配,先定义的变量,分配的地址高。后定义的变量,分配的地址低。
a和b的地址不一定连续
内存有若干个1个字节(内存单元)构成的,每个字节(内存单元)有唯一个地址