黑马程序员——视频学习过程3

-----------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:显示当前目录的名称

计算机生成了可选文字:常 用 的 UNIX 指 令 : ( 需 要 经 常 使 用 才 不 容 易 忘 记 ) Is : 列 出 当 前 目 录 下 的 所 有 内 容 ( 文 件 \ 文 件 夹 ) pwd : 显 示 出 当 前 目 录 的 名 称 cd : 改 变 当 前 操 作 的 目 录 who : 显 示 当 前 用 户 名 clear : 清 除 所 有 内 容 nkdir : 创 建 一 个 新 目 录 rm : 删 除 文 件 ” -r : 删 除 文 件 夹 创 建 文 件 touch: -f 强 制 删 除 一 q ! 强 制 退 出 1 7 : 02 vi / open: 打 开 、 创 建 文 件 -q 退 出 , -wq 保 持 病 退 出 cat/more 都 可 以 查 看 文 件 内 容 方 向 键 可 以 查 看 历 史 命 令

 

#include 搜索顺序:当前目录---》编译器目录---》系统目录---》报错

当前目录是和main.c的同意文件夹目录。

编译器目录是include目录。

 

3、模块化编程

我们把功能相似的函数封装到不同的文件中

.c  C语言的源文件

.h  (header)头文件

1)方法的声明 但不能实现方法

2)声明变量

3)声明结构体

好处:

1)用的时候,只需要包含.h文件,对外隐藏文件的实现。

2)团队的分工和协作

3)可以把功能细化分成若干个模块。


视频七:

2#include指令

<>表示包含的是系统的头文件。

""表示包含的用户自己书写的文件,可以是头文件,也可以是普通稳文件。

#include是一个预处理指令,不是一个语句,不需要;

作用是:把要包含的文件的内容拷贝到当前书写的

 

6、进制

二进制:0000001001001000

printf十进制,八进制,十六进制;

              %d          %o            %x

C语言不提供打印二进制。

一个字节占8位。

 

10、机器数和真值

一个数再计算机中的二进制标识,叫做这个数的机器数。最高位存放符号,正数为0,负数为1.

 

11、原码、反码、补码的基本概念

数据再计算机内部是以补码的形式存储的

反码是符号位不变,其余各位取反。

 

12、位运算

用于整数的二进制之间的运算

&

按位与

如果两个位进行&操作,同1结果就为1,有0结果就为0

|

按位或

如果两个位进行|操作,结果就为1,有0则为0

~

按位取反

1001

>>

右移位

移出去的部分要舍弃,高位要补符号位,如果是正数补0,是负数补1,右移位不会改变一个数的正负性。

<<

左移位

各二进位全部左移n位,高位丢弃,低位补0,左移可能会改变一个数的正负性。

^

按位异或

相同为0,不同为1

 

18、获取变量地址的方法

Printf("%d",&a);

分配地址的时候,从高地址向低地址分配,先定义的变量,分配的地址高。后定义的变量,分配的地址低。

a和b的地址不一定连续

内存有若干个1个字节(内存单元)构成的,每个字节(内存单元)有唯一个地址


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值