代码 / 编程语言

c复习

6 分钟阅读
代码编程语言学习笔记C语言复习资料

这篇文章是大一刚开学对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 (长双精度浮点型)
如表所示

类型 字节数 有效位数 取值范围
foat 4 6 -3.4 * 10^38 ~ 3.4 * 10^38
double 8 15 -1.7 * 10^308 ~ 3.4 * 10^308
long double 16 19 -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那么空格也会被读入

空语句

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

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

switch 语句

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

常量可为1、2、3;‘c’、‘a’…

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