C语言之父
丹尼斯.里奇
C语言版本
1989年12月 ANSI C或C89
1999年8月 C99
C语言特点
1)代码级别的跨平台
2)使允许直接访问物理地址,对硬件直接操作
3)C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言
4)C语言传递参数可以是值传递,也可以是传递指针
5)C语言中,没有对象,不同的变量类型可以用结构体组合在一起
6)预编译处理,生成目标代码质量高,程序执行效率高
C程序运行机制(过程)简述
1)编辑:源代码
2)编译:在.c程序翻译成目标文件.obj
3)链接:将.obj+库文件生成可执行文件.exe
4)运行:执行*.exe文件
这里是引用:尚硅谷图片
C的注释类型
1)单行注释
2)多行注释
C语言数据类型
这里是引用:尚硅谷图片
整形的使用细节
各个整形类型的存储大小与操作系统、系统位数和编译器有关
布尔类型:boolean
1)C语言标准(C89)没有定义布尔类型,所以C语言判断真假以0为假,非0为真
2)C语言标准(C99)提供_Bool型,_Bool仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值0或1,非0的值都会被存储为1,C99还提供了一个头文件<stdbool.h>定义了bool代表_Bool,true代表1,false代表0
自动类型转换
介绍:当C程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
强制类型转换
常量
整形常量和浮点常量
定义常量的两种方式
1)使用#define预处理器
2)使用const关键字
#const和#define的区别
1)const定义的常量时,带类型,define不带类型
2)const是在编译、运行的时候起作用,而define是在编译的预处理阶段起作用
3)define只是简单的替换,没有类型检查。简单的字符串替换会导致边界效应
4)const常量可以进行调试的,define是不能进行调试的,主要是预编译阶段就与已经替换掉了,调试的时候就没它了
5)const 不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义,再重新定义
6)define可以配合#ifdef、#ifndef、t#endif 来使用,可以让代码更加灵活,比如我们可以通过define 来启动或者关闭调试信息
C语言位运算符介绍
这里是引用:尚硅谷图片