C语言

1,程序

(1)程序基本概念

  • C语言程序至少由一个 main() 函数组成
  • main() 函数是执行 C语言程序的人口函数,代码从这里开始执行
  • 如无特殊情况,一般是从上到下依次执行 C语言程序的语句
  • main() 函数执行完毕,意味着整个 C语言程序执行完毕

(2)程序基本结构

  • C语言程序由一个或多个函数组成,其中至少有一个 main() 函数
  • 函数由简单语句和复合语句构成
  • 复合语句由若干个简单语句组成,例如 if 语句和 while 语句都是复合语句
  • 使用关键字可以组成语句
  • 表达式加上分号 ";" 可以组成语句
  • 运算符和操作数可以组成表达式

(3)程序代码可读性

  • 水平空白    适当使用空格(用空格键或 Tab键)以提高代码的可读性
  • 垂直空白    适当加入空行(用 Enter键)以提高代码的可读性

2,关键字

  • break    结束循环语句或 switch...case 分支结构
  • case    可以实现 switch...case 多分支结构
  • continue    提前进入下一次循环
  • default    switch...case 多分支结构的 default 部分
  • do    可以实现 do...while 循环结构
  • else    可以实现 if...else 分支结构
  • for    可以实现 for 循环结构
  • if    可以实现 if...else 分支结构
  • return    结束一个函数并可以附带一个整数作为函数的返回值(?)
  • sizeof    求出数据类型或变量的存储空间大小
  • struct    定义结构体类型
  • switch    可以实现 switch...case 多分支结构
  • typedef    定义数据类型的同义词(别名)
  • unsigned    无符号数
  • void    void 类型,表示通用类型
  • while    可以实现 while 循环结构

3,基本数据类型

  • char    字符类型,本质上是整数类型,sizeof(char) 等于 1
  • short    短整数类型,short int 的简写,sizeof(short) 等于 2
  • int    整数类型,sizeof(int) 等于 2 或 4
  • long    长整数类型,long int 的简写,sizeof(long) 等于 4
  • long long    长整数类型,long long int 的简写,sizeof(long long) 等于 8
  • float    单精度浮点数类型,sizeof(float) 等于 4
  • double    双精度浮点数类型,sizeof(double) 等于 8

4,ASCII字符集

  •  使用7位二进制编码,一共有128个字符(95个“可显示字符”和33个“控制字符”)

5,字符串

  • 以字符 '\0' (ASCII编号为0的字符)为结束标记的 char类型的数组
  • 借助字符数组来实现,没有专门的关键字

6,变量

(1)定义变量

数据类型 变量名;

(2)定义变量并初始化

数据类型 变量名 = 初始值;

(3)一次定义多个变量的格式

数据类型 变量名1,变量名2,······,变量名n;

(4)变量名字的基本要求

  • 变量名字的第一字符必须是字母或者下划线 "_" ,第二个字符起可以是数字、字母或者下划线
  • 变量名是区分大小写字母的,例如 y 和 Y 是两个不同的名字
  • 关键字不能用于变量名
  • 变量名最好能表达出变量的功能用途,做到 “见名知意”
  • 变量一般是描述事物的名称,因此变量的名字建议使用 “名词” 或 “定语_名词” 的形式命名

7,运算符

(1)算数运算符

  • +    加法
  • -    减法
  • *    乘法
  • /    除法(两个整数相除,结果是整数)
  • %    求余数

(2)关系运算符

  • >    大于
  • <    小于
  • ==    等于
  • >=    大于或等于
  • <=    小于或等于
  • !=    不等于

(3)逻辑运算符

  • &&    逻辑与 /且
  • ||    逻辑或
  • !    逻辑非,属于一元运算符

(4)赋值运算符

  • =    把等号右边的值保存到等号左边的变量
  • +=    加赋值运算符

(5)成员运算符

  • .    结构成员运算符
  • ->    间接成员运算符

(6)一元(单目)/三元(三目)运算符

  • &    求出变量在内存中的地址,属于一元运算符
  • *    引用指针所指对象的内容,属于一元运算符
  • ++    自增 1运算符,属于一元运算符
  • --    自减 1运算符,属于一元运算符
  • -    相反数运算符,属于一元运算符
  • ? :    条件运算符,属于三元运算符

8,运算符优先级

  分为15个级别

9,分支结构

  • if 语句的最简形式
if( 表达式 ){
    语句
}
  • if 语句的完整形式
if( 表达式 ){
    语句 1
}else{
    语句 2
}
  • if 语句的扩展形式
if( 表达式1 ){
    语句 1
}else if( 表达式2 ){
    语句 2
}else if( 表达式n ){
    语句 n
}else{
    语句 n+1
}
  • switch...case 语句
switch( 表达式 ){
    case 整数 1 :
        语句 1
        break;
    case 整数 2 :
        语句 2
        break;
    case 整数 n :
        语句 n
        break;
    default :
        语句 n+1
}

10,循环结构 

  • while 语句
while( 表达式 ){
    语句
}
  • for 语句
for( 表达式1; 表达式2; 表达式3 ){
    语句
}
  • do...while 语句
do {
    语句
} while( 表达式 );

11,函数 

  • 函数定义
数据类型 函数名字 ( 数据类型1 形式参数1, 数据类型2 形式参数2, ······)
{
    // 函数体
}
  • 函数调用
某个变量 = 函数名字( 实际参数1, 实际参数2, ······ );
函数名字( 实际参数1, 实际参数2, ······ );
  • 函数原型声明
数据类型 函数名字 ( 数据类型1 形式参数1, 数据类型2 形式参数2, ······);

 12,数组

  • 定义一维数组
数据类型 数组名 [ 元素个数 n ];
  • 定义一维数组并初始化
数据类型 数组名 [ 元素个数 n ] = { 第0个元素, 第1个元素, ······, 第k个元素 };
  • 访问一维数组的元素
数组名[ 下标i ]
  • 定义二维数组
数据类型 数组名 [ 行数量R ][ 列数量C ];
  • 定义二维数组并初始化
数据类型 数组名 [ 行数量R ][ 列数量C ] = {
    { 第0行0列元素, 第0行1列元素, ······, 第0行n列元素 },
    { 第1行0列元素, 第1行1列元素, ······, 第1行n列元素 },
    ······
    { 第m行0列元素, 第m行1列元素, ······, 第m行n列元素 }
};
  • 访问二维数组的元素
数组名[ 行下标 ][ 列下标 ]
  • 变长数组

    使用整数类型的变量定义数组的大小,并在程序运行时才确定数组的大小

13,结构体

  • 定义结构体类型
struct 结构体名字 {
    第1个成员;
    第2个成员;
    ······
    第n个成员;
}
  • 定义结构体变量
struct 结构体名字 变量名字;
  • 定义结构体变量并初始化
struct 结构体名字 变量名字 = { 数据1, 数据2, ······, 数据k };
  • 访问结构体变量的成员
结构体变量名字.成员
  • 访问结构体指针的成员
( * 指向结构变量的指针名字 ).成员
指向结构变量的指针名字 -> 成员

14,指针

  • 定义指针
数据类型 * 指针变量 ;
  • 定义指针并初始化
数据类型 * 指针变量 =& 其他变量;
  • 引用指针所指向对象的内容
*指针变量 

15,标准库函数

(1)< stdio.h >

  • fopen()    打开文件
  • fclose()    关闭文件
  • printf()    输出数据到屏幕中
  • fprintf()    输出数据到文本文件中
  • sprintf()    输出数据到字符数组中
  • scanf()    从键盘输入数据
  • fscanf()    从文本文件输入数据
  • fwrite()    输出数据到二进制文件中
  • fread()    从二进制文件输入数据
  • feof()    检测是否到达文件末尾
  • fseek()    移动文件的读写 “光标”

(2)< string.h >

  • strcmp()    比较两个字符串是否相等
  • strcpy()    复制字符串

(3)< math.h >

  • abs()    求绝对值
  • sqrt()    求算术平方根

(4)< stdlib.h >

  • rand()    产生随机数
  • srand()    设置随机数种子
  • malloc()    分配内存空间
  • free()    释放内存空间
  • exit()    结束整个程序

(5)< time.h >

  • time()    获取计算机当前的时间

16,函数 printf() 的格式说明符

  • %c    输出 ASCII 码字符
  • %d    以十进制形式输出 int 类型的整数
  • %lld    以十进制形式输出 long long 类型的整数
  • %Md    以十进制形式输出 int 类型的整数,要求输出 M 位宽度
  • %0Md    以 M 位十进制形式输出 int 类型的整数,若位数不足则使用 0 补足
  • %o    以八进制形式输出 int 类型的整数
  • %x    以十六进制形式输出 int 类型的整数,字母 a~e 使用小写形式
  • %X    以十六进制形式输出 int 类型的整数,字母 A~E 使用大写形式
  • %p    按照 %X的格式输出十六进制形式的地址,并使用前导 0 补足不足的位数
  • %f    输出 float 和 double 类型的浮点数
  • %.Nf    输出 float 和 double 类型的浮点数,要求输出 N 位小数
  • %M.Nf    输出 float 和 double 类型的浮点数,要求输出 M 位总宽度以及 N 位小数
  • %s    输出字符串
  • %Ms    输出字符串,并指定宽度为 M 个字符,若宽度不足,则使用空格补足
  • %%    输出一个百分号 “%”

17,函数 scanf() 的格式说明符

  • %c    输入 ASCII 码字符
  • %d    以十进制形式输入 int 类型的整数
  • %lld    以十进制形式输入 long long 类型的整数
  • %o    以八进制形式输入 int 类型的整数
  • %x    以十六进制形式输入 int 类型的整数
  • %f    输入 float 类型的浮点数
  • %lf    输入 double 类型的浮点数
  • %s    输入字符串
  • %Ms    输入字符串,并指定最多输入 M 个字符

18,换码序列

  • \n    换行符,即 Enter 键
  • \t    制表符,即 Tab 键,可以实现每列数据左对齐

19,预编译指令

  • # include    引用一个文件
  • # define    定义宏替换

 

 

 

相关/转载:

1,《C语言程序设计案例教程》附录 知识点汇总

posted @ 2022-05-07 18:41  子崖子崖  阅读(264)  评论(0)    收藏  举报