
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 |
子程序返回语句(可以带参数,也可不带参数) |
inline |
restrict |
_Bool |
_Complex |
_Imaginary |
_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语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。