C语言程序设计概述
一个简单句的C程序
#include <stdio.h>
int main(){
printf("This is a C program.\n");
retrun 0;
}
C程序的执行过程
数据单位
- bit:位,计算机中最小的数据单位
- Byte:字节,计算机中信息组织和存储的基本单位,也是计算机体系结构的基本单位
- 字长:计算机一次能够并行处理的二进制代码的位数
进制与进制转换
- 二进制转十进制:8421法
- 十进制转二进制:除以2逆向取余法
- 二进制转八进制:从右向左,每3个二进制位转换成1个八进制位
- 八进制转二进制:每1个八进制位转换成3个二进制位,不足三位左边补0
- 二进制转十六进制:从右向左,每4个二进制位转换成1个十六进制位
- 十六进制转二进制:每1个十六进制位转换成4个二进制位,不足四位左边补0
原码、反码、补码的转换
- 正数的原码、反码、补码都是一样的
- 负数的反码是在原码的基础上“符号位不变,数值位取反”
- 负数的补码是在反码的基础上“符号位不变,数值位加1”
数据类型
关键字与标识符
常量与变量
各数据类型
- 整型数据
- 整型常数:八进制、十六进制、十进制三种表示形式,无二进制表示形式
- 八进制加前导0;十六进制加前导0X;十进制无前缀;
- 只有十进制可以是负数
- 整型变量:基本整型int、短整型short、长整型long、无符号整型unsigned
- 实型数据
- 实型常数:两种表现形式,小数形式,如1.23和指数形式,如1.23e5
- 实型变量:单精度float,占4字节、双精度double,占8字节
- 实型常量不分D型和F型
- 字符常量
-
一个字符常量代表ASCLL码字符集中的一个字符,占1字节,用单引号扩住,区分大小写
-
一个字符数据可以以字符形式或整数形式输出
- 字符串常量
- 一对由双引号括住的字符序列,如"Welcome to china"
- C语言在编译时会自动在字符串尾加一个转义字符’\0’
- 符号常量
- 由预处理命令"#define"定义的常量,在C语言中可以用标识符代表一个常量
运算符与表达式
运算符优先级
初等运算符>单目运算符>算术运算符(先乘除后加减)>关系运算符>逻辑运算符(不包括"!")>条件运算符>赋值运算符>逗号运算符
各类运算表达式
- 单目、双目、三目运算符
- 单目运算符:运算对象只有一个。如:++ – !
- 双目运算符:运算对象有两个。如:+-*/
- 三目运算符:运算对象有三个。如:?:
- 算术运算符与算术运算表达式
- ±*/:只要一个运算对象是浮点型,则表达式值为double型
- ++、–:区分前后缀,i++、i–、++i、–i
- 关系运算符与关系表达式
- “>” “<” “==” “>=” “<=” “!=”
- 关系运算表达式的值为"真"“假”,用"1""0"表示
- 逻辑运算符和逻辑运算表达式
- &&:逻辑与,全1为1,有0则0
- ||:逻辑或,全0为0,有1则1
- !:逻辑非
- 赋值运算符和赋值运算表达式
- 简单赋值"="
- 复合赋值"+=" “-=” “*=” “/=” “%=”
- 逗号运算符和逗号运算表达式
表达式1,表达式2,表达式3,...
- 逗号表达式的最终值是最后一个表达式的值,但所有表达式都会运行
- sizeof求字节运算符
- sizeof(表达式)
- 结果为表达式结果的数据类型占据的字节数
- 强制类型转换运算符
- (类型名)(表达式)
- 不同类型的数据混合运算时为了保证运算的精度,计算机会自动转向精度高的数据类型转换
- char一定会转换为int
- float一定转换为double