1.关键字
c语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。
下面列举常见的关键字:
auto break case char const continue default do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while
-
类型:auto、const、char、int、enum、short、union、long、struct、float、duoble、sizeof、typedef、signed (有符号的)、unsigned(无符号) 、static、void - 循环:break、continue、do、while、for
- 分支:if、else、switch、case、break、default、goto
- 声明外部符号:extern
- 寄存器:register
- 函数返回:return
- 计算所占内存大小:sizeof
- typedef:类型定义,可以理解为类型重命名。例
//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
//观察num1和num2,这两个变量的类型是一样的
unsigned int num1 = 0;
uint_32 num2 = 0;
return 0;
}
- static:用来修饰变量和函数的。修饰局部变量-称为静态局部变量 ;修饰全局变量-称为静态全局变量 ;修饰函数-称为静态函数。static修饰局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束;一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
- auto:c语言中,
auto
关键字已经不常用,它在现代编程中几乎不再起作用。在早期版本的C语言中,auto
关键字用于声明自动变量,即在函数内部声明的变量,默认情况下就是自动变量。
2.操作符
- 算数操作符:
+ - * / %
- 移位操作符:
>> <<
- 位操作符:
& ^ |
- 赋值操作符:
= += -= *= /= &= ^= |= >>= <<=
- 单目操作符:
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
- 关系操作符:
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
- 逻辑操作符:
&& 逻辑与
|| 逻辑或
- 条件操作符:
exp1 ? exp2 : exp3
//如果exp1为真,则表达式结果为exp2;如果exp1为假,则表达式结果为exp3;
- 逗号表达式:
exp1, exp2, exp3, …expN
- 下标引用、函数调用和结构成员:
[] 数组下标
()
. 结构体成员
-> 结构体成员
3.转义字符
转义字符是在字符串中表示特殊字符的一种方法。在许多编程语言中,包括C、C++、Java、Python等,都支持使用转义字符来表示一些特殊字符,这些字符在字符串中具有特殊的含义,例如换行符、制表符等。下面是常见的一些转义字符:
转义字符 | 释义 |
---|---|
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\' | 用于表示字符常量' |
\" | 用于表示一个字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。 如: \130 X |
\xdd | dd表示2个十六进制数字。 如: \x30 0 |
拓展:注释有两种风格: C语言风格的注释 /*xxxxxx*/ ,缺陷:不能嵌套注释
C++风格的注释: //xxxxxxxx 可以注释一行也可以注释多行
#define:定义常量和宏(非关键字)
#define
是C语言和C++中的预处理指令,用于创建符号常量和宏。它的作用是在源代码中指定一个标识符的文本替换。
语法格式如下,其中,标识符是要定义的符号常量或宏的名称,而值可以是一个常量、表达式、函数等。
#define 标识符 值
- 定义符号常量。了一个名为
PI
的符号常量,它的值为3.14159
。在代码中使用时,所有的PI
都会被替换为3.14159。
#define PI 3.14159
#define
还可以用来定义宏,宏是一种类似函数的文本替换。这个宏可以用来计算一个数的平方,例如SQUARE(5)
会被替换为(5 * 5)
,结果是25
。
#define SQUARE(x) ((x) * (x))
需要注意的是,#define
是在预处理阶段完成文本替换的,替换是简单的文本替换,并不考虑语法结构。因此,在定义宏时要小心考虑可能带来的副作用,并确保替换后的代码仍然是合法的。