学习手册—C关键字_运算## 标题符_转义字符_Printf使用
C语言的关键字
由ANSI标准定义的C语言关键字共32个。
基本数据类型(5 个)
void | 声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 |
---|
char | 字符型类型数据,属于整型数据的一种 |
int | 整型数据,通常为编译器指定的机器字长 |
float | 单精度浮点型数据,属于浮点数据的一种 |
double | 双精度浮点型数据,属于浮点数据的一种 |
类型修饰关键字(4 个)
short: | 修饰 int ,短整型数据,可省略被修饰的 int 。 |
---|
long : | 修饰 int,长整形数据,可省略被修饰的 int。 |
signed: | 修 饰 整 型 数 据 , 有 符 号 数 据 类 型 |
unsigned: | 修饰整型数据,无符号数据类型 |
复杂类型关键字(5 个)
struct: | 结构体声明 |
---|
union: | 共用体声明 |
enum: | 枚举声明 |
typedef: | 声明类型别名 |
sizeof: | 得到特定类型或特定类型变量的大小 |
存储类型关键字(6 个)
auto: | 指定为自动变量,由编译器自动分配及释放。通常在栈上分配 |
---|
static | 指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部 |
register | 指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数 |
extern | 指定对应变量为外部变量, 即在另外的目标文件中定义, 可以认为是约定由另外文件声明的 |
const | 与 volatile 合称 “ cv特性 ”,指定变量不可被当前线程 /进程改变(但有可能被系统或其他线程 /进程改变) |
volatile | 与 const 合称 “ cv特性 ”,指定变量的值有可能会被系统或其他进程 /线程改变,强制编译器每次从内存中取得该变量的值 |
流程控制关键字
跳转结构( 4 个)
return : | 用在函数体中,返回特定值(或者是 void 值,即不返回值) |
---|
continue : | 结束当前循环,开始下一轮循环 |
break: | 跳出当前循环或 switch 结构 |
goto : | 无条件跳转语句 |
分支结构( 5 个)
if | 条 件 语 句 |
---|
else | 条件语句否定分支(与 if 连用) |
switch | 开关语句(多重分支语句) |
case | 开关语句中的分支标记 |
default | 开关语句中的 “其他 ”分治,可选。 |
循环结构( 3 个)
for | for 循环结构, for(1;2;3)4; 的执行顺序为 1->2->4->3->2… 循环,其中 2 为循环条件 |
---|
do | do 循环结构, do 1 while(2); 的执行顺序是 1->2->1… 循环, 2 为循环条件 |
while | while 循环结构, while(1) 2; 的执行顺序是 1->2->1… 循环, 1 为循环条件以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。 |
运算符
运算符类型 | 运算符 | 说明 |
---|
算术运算符 | = | 赋值 |
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 取模 |
比较运算符 | == | 等于 |
| != | 不等于 |
| < | 小于 |
| > | 大于 |
| <= | 小于或等于 |
| >= | 大 |
逻辑运算符 | && | 逻辑与运算 |
| II制表符 | 逻辑或运算 |
| ! | 逻辑非运算 |
复合运算 | ++ | 自加 |
| – | 自减 |
| += | 复合加 |
| -= | 复合减 |
转义字符
转义字符在字符串中会被自动转换为相应操作命令。printf()使用的常见转义字符如下:
转义字符 | 意义 |
---|
\a | 警报(响铃)符 |
\b | 回退符 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 横向制表符 |
\v | 纵向制表符 |
\ | 反斜杠 |
\” | 双引号 |
C 标准库 - printf()
printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);
规定符 | 意义 |
---|
%d | 十进制有符号整数 |
%u | 十进制无符号整数 |
%f | 浮点数 |
%s | 字符串 |
%c | 单个字符 |
%p | 指针的值 |
%e | 指数形式的浮点数 |
%x, %X | 无符号以十六进制表示的整数 |
%o | 无符号以八进制表示的整数 |
%g | 把输出的值按照%e或者%f类型中输出长度较小的方式输出 |
%p | 输出地址符 |
%lu | 32位无符号整数 |
%llu | 64位无符号整数 |
说明
可以在“%”和字母之间插进数字表示最大场宽。
可以在“%”和字母之间加小写字母l,表示输出的是长型数。
可以控制输出左对齐或右对齐,即在"%“和字母之间加入一个”-"号可
一些特殊规定字符 | 作用 |
---|
\n | 换行 |
\f | 清屏并换页 |
\r | 回车 |
\t | Tab符 |
\xhh | 表示一个ASCII码用16进表示, |
其中hh是1到2个16进制数
实例
- printf(“ASCII 值 = %d, 字符 = %c\n”, ch , ch );
- printf("%5d\n",1000); //默认右对齐,左边补空格
- printf("%-5d\n",1000); //左对齐,右边补空格
- printf("%+d %+d\n",1000,-1000); //输出正负号
- printf("% d % d\n",1000,-1000); //正号用空格替代,负号输出
- printf("%x %#x\n",1000,1000); //输出0x
- printf("%.0f %#.0f\n",1000.0,1000.0) //当小数点后不输出值时依然输出小数点
- printf("%g %#g\n",1000.0,1000.0); //保留小数点后后的0
- printf("%05d\n",1000); //前面补0