历史
组成:由预编译指令、宏定义指令、注释、主函数、自定义函数等组成
#include,
(#define、#undef),
条件编译:(#if、#elif、#else、#endif),(#ifdef、#ifndef、#endif)
注释://、/**/
常量:整型、实型、字符常量、字符串常量、布尔常量、枚举常量、宏定义常量
变量:整型、实型、字符变量(1个字节,在内存中存储的是字符的ASCII码,形式与整型变量的存储形式一样)
常用数据类型:整型、实型、字符型、布尔等基本类型,和枚举、数组、结构体、共用体、类等构造类型,指针类型,引用类型,空类型
流:数据之间的传输操作。标准I/O、文件I/O、串I/O
流操作:引用头文件 iomanip.h 进行输出格式控制。
运算符:算法运算符(+、-、*、/、%、++、--)、关系运算符(<、>、>=、<=、==、!=)、逻辑运算符(&&、||、!)、赋值运算符、位运算符(&、|、^、~)、移位运算符(>>、<<)、sizeof()运算符、条件运算符(<表达式1>?<表达式2>:<表达式3>)、逗号运算符、成员运算符( . 、->)、
表达式:算数表达式、关系表达式、条件表达式、赋值表达式、逻辑表达式、逗号表达式
类型转换:隐式转换、强制转换
语句:最小的可执行单元,一条语句由一个分号结束;分为操作运算语句、流程控制语句
流程结构:顺序结构、选择结构、循环结构
左值与右值:左值是内存中持续存储的数据;右值是临时存储的结果。
选择结构:if语句、switch语句(分支比较多的时候使用)
循环结构:while循环、do...while循环(while后要加分号;)、for循环
循环控制:控制循环变量,和控制循环的跳转(break,continue)。break是中断循环,continue是跳出本次循环的执行。
函数:由类型标识符、函数名、形参列表、函数体(含返回值)组成。
递归函数:直接或间接调用自己的函数被称为递归函数。
变量的作用域:局部变量(在函数调用的时候创建,并在栈中分配内存,在函数调用结束后销毁并释放)、全局变量(在程序开始时创建并分配空间,在程序结束的时候释放内存并销毁)
变量的存储类别:auto(自动变量的作用域和生存期局限于定义它的个体内,不同个体中允许使用同名的变量)、static(编译器会为静态局部变量赋予0初值)、register、extern(使用其他源文件的全局变量时,需要在本源文件中使用extern关键字来声明该变量)
重载函数:指多个函数具有相同的函数标识名,而参数类型或参数个数不同。在函数调用时,编译器根据参数个数和类型来区分调用哪个函数。
内联函数:在函数声明的时候,在函数返回值类型前加上inline关键字。编译器会在每个调用该内联函数的地方展开一个函数的副本。
其他概念:转义字符(如:\a,\n)、标识符、重载运算符(左移运算符或插入运算符“>>”,右移运算符或提取运算符“>>”)、作用域运算符(::)、成员指针运算符(->)、空函数、实参与形参、引用型变量、默认参数、可变参数(最后含“...”参数)、值传递、
Tips:1.实数进行比较时,尽量不要使用“==”和“!=”运算符;
2.强制类型转换后不改变数据说明时对该变量定义的类型。
3.条件运算符可以嵌套,一般不建议使用。
4.慎用goto 语句,goto语句不能越过复合语句之外的变量定义的语句;
5.调用一个函数前必须先声明函数的返回值类型和参数类型;函数声明时可以省略变量名
6.如果函数具有多个参数,默认值参数应在参数列表的右边;
7.如果传递的实参是结构体对象,值传递方式效率低下,可以通过指针或使用变量的引用来替换值传递;
8.不能在函数内进行定义函数;
9.在定义重载函数时,不能根据函数的返回值类型区分重载函数。
10.变量的生存期和变量作用域是从时间和空间两个角度来描述变量的特性。
11.即使在函数内定义的自动变量也可与该函数内的复合语句中定义的自动变量同名;
来源:CSDN
作者:renjieDLUT
链接:https://blog.csdn.net/qq_33486219/article/details/104441954