黑马程序员技术交流社区

标题: 学习笔记4-C语言函数与进制 [打印本页]

作者: 仰望星空的猪    时间: 2015-11-18 23:29
标题: 学习笔记4-C语言函数与进制
函数的概述
C语言程序是由函数组成的。函数是C程序的基本模块,通过函数模块的调用实现特定的功能。
函数的优点:提高程序的可读性,提高开发效率和提高代码的重用性。
1函数分类
       1)从函数定义角度
              库函数:由C系统提供,用户无须定义的,也不必在程序中作类型说明,只需要在程序前包含有该函数原型的头文件即可在程序中直接调用。
              用户自定义函数:由用户按需要书写的函数,不仅在程序中定义函数本身,而且在主调函数模块必须对该被调用函数进行类型说明,然后才能使用。
       2)从函数参数和返回值角度
              有返回值函数:函数执行完成返回执行结果。
              无返回值函数:函数执行完成不返回执行结果。
              有参数函数:函数定义及函数说明时都有参数。参数称为形参。
              无参数函数:函数定义及函数说明时没有参数。
       3)各种库函数。
2 自定义函数书写
       1)步骤: 函数声明 、函数定义 和 函数调用
       2)函数基本格式
              返回值类型 函数名称(函数参数){
                      函数体;
              }
       a 无参无返回值函数
       格式
              void 函数名(){
                  函数体;
              }
       没有返回值 返回值类型为void
      
       b 有参无返回值函数
       格式
       void 函数名(形参列表){
               函数体;
       }
       c 无参有返回值函数
       格式
       返回值类型 函数名(){
                函数体;
       }
       函数体中有return 返回执行结果
       d 有参有返回值函数
       格式
       返回值类型 函数名(形参列表){
                函数体;
       }
       函数体中有return 返回执行结果
       3)注意
       a 函数定义时函数名不能重复。
       b 函数的返回值只有一个或没有。
       c 主调函数会赋予形参函数的形参实际值(实参)。
       d 形参是在定义函数时小括号内的参数
          实参是主调函数在调用函数时小括号内实际值。
         多个形参或者实参之间用逗号分隔。
       e 形参只有在调用的时候才会分配内存空间。调用结束后,内存释放。形参只有在函数内有效
       f 实参可以是常量、变量、表达式或者函数。在函数调用时实参必须是确定的值。
       g 实参和形参在数量、类型和顺序上必须保持一致。
       h 函数内修改形参,不会对实参产生影响。
3 函数的声明
       调用函数之前必须对该函数进行声明。类似在使用变量之前对变量进行定义。
       作用是告诉编译器这个函数已经存在以及该函数的返回值类型,以便主调函数处理返回值数据。
       1) 声明格式
       函数头部后加分号。
       a有参有返回值函数
       返回值类型 函数名(形参列表);   
       其他类同。
       2) 注意
       a 函数默认返回值类型为int类型,如果返回值为int类型,函数可以不用声明。
       b 如果被调函数在主调函数之前,函数不用声明。
4 函数调用
       形式
       函数名(实参列表);
5 递归函数
      函数在函数体中调用本身。这种函数称为递归函数。
      1)递归函数的构成条件
       a自己调用自己
       b存在一个条件让递归结束
       c问题的规模能够缩小
6 Xcode的运行原理
       1)    编译à.o的目标文件à链接à.out执行文件。
       2)Mac采用的是unix的文件系统,没有分区概念。
       3)常用命令
               open+文件 类似windows的记事本。
               vi编辑器。
               cc –c 源文件名:编译源文件生成 .o目标文件。
               cc  .o文件 :链接生成.out可执行文件。
      .      /.out文件   执行.out可执行文件。
7  #include预处理指令
      功能是将文件插入到当前位置,取代该命令。
       1)#include “” 包含用户自定义的文件
               查找顺序:当前文件所在目录下查找—编译器include目录—系统include
       2) #include <>   包含系统头文件
              查找顺序:编译器include目录—系统include
8 模块化编程
       模块化编程就是多文件开发,一个.c和一个.h文件可以成为一个模块。
       1) 作用
       隐藏源代码。
       多文件编译
       加强类型的安全检查
       2) 实现
       a 头文件的实现
        声明方法,但是不实现。需要防止重复包含。
        声明变量
        声明结构体
       b  .c文件实现头文件声明的方法
       3) 注意
       a 头文件可以包含其他头文件。
       b 声明函数和变量,但不可以实现和初始化。
       c 结构体一般放在头文件中
       d 多文件编程时,只有一个main函数。
       e .h和.c 需要对应并且文件名相同。
       f 防止重复包含。
       g 多次包含相同的头文件与只包含一次相同。
8 计算中的进制
       常见进制:2进制、8进制、10进制和16进制。
       常见进制转换
       10-2:除2取余倒序。
       2-10:位权相加。
       16-2:一拆四
       2-16:四合一
9 机器数和真值
       机器数:数的二进制形式。最高位为符号位。0为正 1为负。
       真值:二进制常量转换为十进制的值。
10 原码反码补码  
       数据在计算机内部是以补码形式存储。
       数据分为有符号数和无符号数(都为整数)
       整数:反码=补码=原码
       负数:反码==除符号位按位取反 补码=反码+1      
11 计算机存储数据
一个字节存储:11111111-01111111
                            -127-127
       规定10000000表示-128
       所以一个8为有符号数可以表示 -128-127
无符号时可以表示 00000000-11111111
                            0-255
12 位运算
       1)按位与(&):同1为1 有0为0 等同乘法
       2)按位或(|):同0为0 有1为1 等同加法  
       3)按位取反(~):1->0  0->1
       4)按位异或:相同为0 不同为1.
               按位异或交换两个数的值。
               a=a^b;
               b=a^b;
               a=a^b;
12 位移
       左移:向左每移动。可能改变正负。
       右移:不会改变数的正负性。高位要补符号位。
13  变量地址获取和存储原理
      &取变量的地址,%p 打印变量的地址。
      先定义的变量存储在高地址。
      变量之间的地址不一定连续。
      变量存储细节:低字节存在低地址,高字节存在高地址。
     


作者: 唐阿丽    时间: 2015-11-19 07:16
学习下,挺不错的
作者: 米易雅克    时间: 2015-11-19 07:28
嗯很 多,不知道你都会了吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2