[1 词法符号]
1. 关键字: 32 个
1) 存储类型: 决定 (设备) 变量的存储位置
auto(自动型).extern(外部引用) static(静态型) register(寄存器类型)
2) 数据类型: 决定设备在对应位置所占的空间大小
- char (字符型) int(整型) short(短整型) long(长整型) float(单精度浮点类型) double(双精度浮点类型) signed(有符号)
- unsigned(无符号)
3)控制语句: if ,else ,switch , case ,break ,default ,for , while ,do
Goto(跳转) ,continue ,return
4)构造函数类型: struct(结构体) union(共用体) enum(枚举)
5)杂项: const(常量化) sizeof(计算数据所占空间大小) typedef(重定义) ,void(空, 修饰指针, 不能修饰变量; 作为函数的返回值; 作为函数的参数 ) volatile(防止被编译器优化)
2.标识符: 用于定义宏名, 变量名, 函数名和自定义的类型名
1)标识符由一个或者多个字母, 数字, 或者下划线组成
2)标识符的第一个字符必须是字母 或者下划线
3)不能与任何关键字相同
变量: 在程序运行期间值可以发生变化的量
格式: 存储类型 数据类型 变量化
Int a =4;
没有被初始化的的全局变量存储在. bss 段 , 存储在该段的初值都为 0
局部变量存储在栈区, 由系统自动分配并释放
Int a=10 // 定义变量的时候并初始化
2. 算数运算:
- 1):+ - */ % ++ --
- Int a=5/2; =2
除号: 向下取整
%: 运算符左右两侧只能是整数
- #include<stdio.h>
- Int main()
- {
- Int a=5;
Printf("%d\n",a++); 结果是 5(先取值, 再自加)
Printf("%d\n",++a); 结果是 7 (先自加, 再取值)
return 0;
}
答案: 5 ,7
2)关系运算>>= <<= == !=
3) 赋值运算:+= -= *= /= &= =
sum+=i; sum=sum+I;
4) 逻辑运算:&&(逻辑与) ||(逻辑或) !(逻辑非)
&&: 全真为真 , 一假则假
- // 串联: 有一假, 则后面的表达式将不被执行
- Int a =3 ,b=4 ,b=4;
- Int c =a>b && b++;
结果: c=0 ,b=4;
||: 一真则真, 全假则假
// 并联: 有一真, 则后面的表达式将不被执行
!: 取反
遵循截断法则
[1]
1. 存储类型: 决定变量的存储位置
1)
auto int aint a 两边等价
auto 修饰的局部变量, 不初始化的时候, 初值为随机值(修饰全局变量不初始化的时候初值为 0)
auto 只能修饰局部变量
2)
extern 外部引用
外部引用变量, 编译时需要多个文件同时编译
3)
Static : 静态型
只初始化一次
修饰的变量如果没有初始化, 初始值为 0
存放在静态区
限制作用域, 修饰局部变量时限制再在局部, 修饰全局变量, 限制在本文件中
只初始化一次, 修饰的变量, 下面使用的值, 时上面运算后的值
1. 未初始化的全局变量和静态变量放在. BSS 段, 已初始化但初始化的值为 0 的全局变量和静态变量也放在. bss 段
2. 已初始化为 0 的全局变量和静态变量放在. bss 段
3.data 存储已初始化的全局变量和静态变量, 但是初值不是 0
[3 常量]
整型常量
浮点常量
指数常量
字符常量: 单引号引起来的一个字符
'a' 'b'
字符串常量: 双引号引起来的一串字符
"hello" 6 个
字符串常量始终以'\0'结尾,'\0'是系统自动补, 不需要程序员写, 程序员要考虑'\0'必须要有空间去存放
标识常量: 符号常量
格式:#define 宏名 标识符
例子:
- #define M 3
- #define N M+M
- Printf("%d\n",N*3+1);
展开 M+M*3+1=13
单纯的替换(不能加括号)
[4] 格式输入输出语句:
- 1.printf:
- int printf(const char *format, ...);
功能: 按照指定的格式向终端输出
参数: 多参
format: 向终端输出的内容
%d -- int 整型
%ld -- long 长整型
%c -- char 字符型
%e -- 指数形式
- %f -- float
- %lf -- double
%s -- 字符串
%p -- 地址
%0m.nf
0: 在左侧补 0
m: 指定的位宽,
m 大于实际位宽时, 按 m 输出
m 小于实际位宽时, 按原样输出
+: 输出符号
-: 左对齐, 默认右对齐
返回值: 输出字符的个数
来源: https://www.cnblogs.com/hehu/p/11564988.html