这篇文章是大一刚开学对 c 的复习,十分的不全面,看看就行。

程序设计语言
机器语言 汇编语言 高级语言
return 0 ; return 表示 main 函数结束,0 表示程序在退出时给执行此程序的操作系统返回来一个结果,即返回值。

# c 程序的构成

# 预处理部分

  1. 宏定义:#define 指令定义一个宏,#undef 指令删除一个宏定义
  2. 头文件包含:#include
  3. 条件编译语句:#if、#ifdef、#ifndef、#else 和 #endif 指令根据预处理器可以测试的条件来确定是将一段文本块包含到程序还是将其排除在外

# 说明部分

  1. 全局变量
  2. 常量:#define PI 3.1416926f \ const float PI 3.1415926
  3. 函数声明

# 执行部分

  1. 主函数
  2. 其他函数

# 标识符

由数字、字母和下划线字符构成的一个连续序列,不能有空白字符。
区分大小写

# 整型数据的分类

基本整型(int)、短整型(short int)和长整型(long int)
int 的取值范围 - 2147483648 与 2147483647(2^31-1)、字节数 4
short (int) 的取值范围 -32768 与 32767 之间、字节数 2
long (int) 主流编译器一般规定其取值范围与基本 int 类型相同、字节数 4
C 语言还提供了有符号和无符号整数类型
若希望表达非负整数,可以定义无符号整型,即在类型符号前面加上修饰符 unsigned
加上 unsigned 变成原来的两倍、字节数不变
如:unsigned int : 0 ~ 4294967295

# 整型常数的书写形式

  1. 十进制形式
  2. 八进制形式: 以 0 开头,如 0100、0123、0123456
  3. 十六进制形式:以 0x 开头,如 0x100、0x123
  4. 整型数据的储存形式:在计算机内部通常采用补码形式储存

# 补码 ( 后面再补充相应知识 )

# 浮点数类型

C 语言把浮点数类型分为 float(单精度浮点型)、double(双精度浮点型)和 long double (长双精度浮点型)
如表所示

类型字节数有效位数取值范围
foat46-3.4 * 10^38 ~ 3.4 * 10^38
double815-1.7 * 10^308 ~ 3.4 * 10^308
long double1619-1.2 * 10^4932 ~ 3.4 * 10^4932

# 浮点数的书写形式

  1. 当小数点前后的数是零时,可以省略 0,但是小数点不能省略如 5. 和.5 分别表示 5.0 和 0.5
  2. 指数形式 : 如 4.5678E2 代表 4.5678 * 10^2 \ -5.7e-3 代表 - 5.7 * 10^-3 (E 和 e 本质是一样的)

默认情况下,浮点型常数为 double 型。可以在浮点型常数后面加上 F (f) 以表示 float 型;也可以在浮点型常数后面加上 L (l)表示 long double 型

# 字符类型

ASCII 字符集的特征:0~9、26 个大写英文字母以及 26 哥消协的英文字母的编码各自是连续的
如:A 的编码加上 25 是 Z 的编码

char 类型来描述单字节编码字符集中的字符类型数据
C 还提供了 [signed] char 和 unsigned char 类型,他们的区别在于:在参加算术运算时,把字符的编码当作有符号整数还是无符号整数来看待

# 字符型常量的三种书写方式:

  1. 以一对单引号括起来的一个字符:'A''1'
  2. 以字符对应的 ASCII 码来表示,这时必须用转义序列(以反斜杠开头的一串字符)
  • 八进制:'\ddd' 如 '101' 为字母 A 的 ASCII 码的八进制表示
  • 十六进制:'\xhh' 如 '\x41' 为字母 A 的 ASCII 码的十六进制表示
  1. 特殊的转移序列符号表示
符号含义符号含义
\a响铃\v纵向制表
\b退格'单引号
\f换页''双引号
\n换行\ | 反斜杠
\r回车\0字符串结束
\t横向制表

"Please enter "Y" or "N":
当字符串包含双引号 "时,双引号应写成:"
字符常量表示单个字符,字符串常量可表示多个字符
字符常量用 '' 表示,字符串常量用 "" 表示
在储存字符串时,通常在最后一个字符后面储存一个表示字符串结束的标记符号

两个实数相除的结果是双精度实数,两个整数相除的结果是整数

# 常用运算符的优先级与结合性

自行百度

# 输入输出语句

printf ( ) ; scanf ( ) ; getchar ( ) ; putchar ( ) ; puts ( ) ; gets ( ) ;

# 头文件

/#include< > 表示直接去查找系统的源文件
/#include" " 表示先去找用户存放源文件的子目录再去找系统文件
如果是自己写的头文件必须用第二种
如果头文件不在当前目录中,可以在双引号中写出文件路径 (#include "C:\temp\file.h"

# scanf 与 printf

特别的,scanf ("%2d%2d" , & a , & b) ; 输入的数据可以为 1234
则 a = 12 , b = 34 ;
如果 scanf ("a=% d,b=% d\n" , & a , & b) ;
则用户必须输入 a=12,b=34 ;
如果是 scanf ("% d * % d" , & a , & b) ;
那么用户输入 12,34|12#34 都会得到正确的结果,因为 * 为忽略输入修饰符
scanf 输入时如果是 % c 那么空格也会被读入

# 空语句

空语句不做任何事情其作用是用于语法上需要一条语句的地方,而该地方又不需要做任何事情;例如

1
2
3
4
5
6
{
...
goto end ;
...
end : ;
}
1
2
int i = 1 , sum = 0 ; 
for ( ; i <= 100 ; sum += i , i ++ ) ;

# switch 语句

1
2
3
4
5
6
switch( <整式表达式> ) { 
case 常量1: 语句序列1 ; break ;
case 常量2: 语句序列2 ; break ;
...
default ;
}

常量可为 1、2、3;'c'、'a'....

case 常量 1: 语句序列 1 ; break ;

更新于 阅读次数