C语言ANSI标准定义的32个关键字:
| auto | double | int | struct |
| break | else | long | switch |
| case | enum | register | typedef |
| char | extern | return | union |
| const | float | short | unsigned |
| continue | for | signed | void |
| default | goto | sizeof | volatile |
| do | if | static | while |
32个关键字分为两个大的类别:数据类型和控制结构
| 类别 | 关键字 | 简单说明 |
| 基本类型 | char | 声明字符型变量或函数返回值类型 |
| 5 | double | 声明双精度浮点型变量或函数返回值类型 |
| float | 声明浮点型变量或函数返回值类型 |
| int | 声明整型变量或函数 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| 复杂类型 | enum | 声明枚举类型 |
| 5 | sizeof | 计算数据类型或变量长度(即所占字节数) |
| struct | 声明结构体类型 |
| typedef | 用以给数据类型取别名 |
| union | 声明共用体类型 |
| 类型修饰 | long | 声明长整型变量或函数返回值类型 |
| 4 | short | 声明短整型变量或函数 |
| signed | 声明有符号类型变量或函数 |
| unsigned | 声明无符号类型变量或函数 |
| 存储级别 | auto | 声明自动变量 |
| 6 | const | 声明只读变量 |
| extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
| register | 声明寄存器变量 |
| static | 声明静态变量 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| 分支结构 | case | 开关语句分支 |
| 5 | default | 开关语句中的“其它”分支 |
| else | 条件语句否定分支(与 if 连用) |
| if | 条件语句 |
| switch | 用于开关语句 |
| 循环结构 | do | 循环语句的循环体 |
| 3 | for | 一种循环语句 |
| while | 循环语句的循环条件 |
| 跳转结构 | break | 跳出当前循环 |
| 4 | continue | 结束当前循环,开始下一轮循环 |
| goto | 无条件跳转语句 |
| return | 子程序返回语句(可以带参数,也可不带参数) |
1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:
| inline | restrict | _Bool | _Complex | _Imaginary |
2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:
| _Alignas | _Alignof | _Atomic | _Static_assert |
| _Noreturn | _Thread_local | _Generic |
|
C++63个关键字
| asm | else | new | this |
| auto | enum | operator | throw |
| bool | explicit | private | TRUE |
| break | export | protected | try |
| case | extern | public | typedef |
| catch | FALSE | register | typeid |
| char | float | reinterpret_cast | typename |
| class | for | return | union |
| const | friend | short | unsigned |
| const_cast | goto | signed | using |
| continue | if | sizeof | virtual |
| default | inline | static | void |
| delete | int | static_cast | volatile |
| do | long | struct | wchar_t |
| double | mutable | switch | while |
| dynamic_cast | namespace | template |
|
C++11新增10个关键
| alignas | alignof | char16_t | char32_t |
| constexpr | decltype | noexcept | nullptr |
| static_assert | thread_local |
|
|
C++98/03标准中,auto表示自动储存类型;C++11标准中,auto表示由编译器静态判断其应有的类型。
C++在C语言基础上新增31个关键字
| 关键字 | 简单说明 |
| asm | 允许在C++程序中嵌入汇编代码 |
| bool | 布尔类型 |
| catch | 用于异常处理 |
| class | 声明一个类 |
| const_cast | 常量对象被转换成非常量对象 |
| delete | 释放程序动态申请的内存空间 |
| dynamic_cast | 允许在运行时刻进行类型转换 |
| explicit | 禁止单参数构造函数被用于自动型别转换 |
| export | 可被外部访问的模板类对象和模板函数 |
| false | bool类型的值之一,等同于int的0值 |
| friend | 声明对象成员的友元关系 |
| mutable | 声明函数不改变对象的状态(非静态和非常量成员) |
| namespace | 命名空间,比类大的结构 |
| new | 新建一个对象 |
| operator | 用于操作符重载,C++中的一种特殊的函数 |
| private | 访问控制符,只能在本类以及友元中访问 |
| protected | 访问控制符,只能在本类以及其继承类和友元中访问 |
| public | 访问控制符,可以在任何类中进行访问 |
| reinterpret_cast | 指针与整数的相互转换 |
| static_cast | 类型转换 |
| template | 模板,C++中泛型机制的实现 |
| this | 返回调用者本身的指针 |
| throw | “抛出”一个异常 |
| true | bool类型的值之一,等同于int的非0值 |
| try | 调用可能抛出异常的函数 |
| typeid | 指出指针或引用指向的对象的实际派生类型 |
| typename | 告诉编译器把一个特殊的名字解释成一个类型 |
| using | 表明使用namespace |
| virtual | 虚的,C++中用来实现多态机制 |
| wchar_t | 宽字符类型,占2个字节,16位宽,可用于表示汉字 |
函数调用约定
函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值。
| _stdcall | _fastcall | _cdecl | _nakedcall |
| _pascal | _thiscall(C++) |
|
|
预处理指令
C语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。
| #define | 定义宏 |
| #elif | 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 |
| #endif | 结束一个#if……#else条件编译块 |
| #error | 停止编译并显示错误信息 |
| #if | 如果给定条件为真,则编译下面代码 |
| #ifndef | 如果宏没有定义,则编译下面代码 |
| #include | 文件包含 |
| #indef | 如果宏已经定义,则编译下面代码 |
| #line | 可以改变编译器用来指出警告和错误信息的文件号和行号 |
| #pragma | 布局控制,典型的用法是禁止或允许某些烦人的警告信息 |
| #undef | 取消已定义的宏 |
9种控制语句
| if()…else… | 条件语句 |
| for()… | 循环语句 |
| while()… | 循环语句 |
| do~while() | 循环语句 |
| continue | 结束本次循环语句 |
| break | 中止执行switch或循环语句 |
| switch… | 多分支选择语句 |
| goto | 转向语句 |
| return | 从函数返回语句 |
C语言33个符号
| 类别 | 符号 | 名称 |
| C++运算符 | :: | 作用域运算符 |
| 成员访问 | . | 结构成员 |
| 单目转型 | - | 取负 |
| & | 取地址 |
| (类型) | 类型转换 |
| * | 取内容 |
| 逗号运算符 | , | 逗号运算 |
| 复合赋值 | += | 加法赋值 |
| 赋值运算 | = | 赋值运算 |
| 关系运算符 | != | 不等于 |
| < | 小于 |
| <= | 小于等于 |
| == | 等于 |
| > | 大于 |
| >= | 大于等于 |
| 函数参数 | () | 圆括号 |
| 逻辑运算符 | ! | 逻辑非 |
| && | 与 |
| || | 或 |
| 前缀或后缀 | -- | 自减 |
| ++ | 自增 |
| 数组下标运算 | [] | 下标 |
| 算术运算符 | - | 减 |
| % | 求余 |
| * | 乘 |
| / | 除 |
| + | 加 |
| 条件运算符 | ?: | 条件运算 |
| 位运算符 | & | 位与 |
| ^ | 位异或 |
| | | 位或 |
| ~ | 位非 |
| 一元运算 | sizeof | 求字节 |
| 移位运算符 | << | 左移 |
| >> | 右移 |
| 指针成员访问 | -> | 指针型结构成员 |
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
-End-