一.控制符
- %d 十进制有符号整数%u 十进制无符号整数%f 浮点数%e 指数形式的浮点数%ld 长整型%lf 长浮点数%x 十六进制%o 八进制%c 字符%s 字符串%p 指针的值%g 自动选择合适的表达方式%和字母之间的数字表示宽度%1d 表示输出一个十进制数%02d 表示输出两个十进制数,不够三位左边补零%7.4f 表示输出宽度为7的浮点数,小数点占一位,小数点后取四位,整数部分取两位
注意:double比float的精度高,但是占用的内存大,所有运行速度比较慢
运算的优先级:算数>关系>逻辑>赋值
二.常见关键字
- auto //声明自动变量:例如 int a=0;//应该为auto int a=0;被省略了break //跳出当前循环case //开关语句分支char //声明字符变量或函数const //修饰变量使之变为常变量continue //结束当前循环,进入下一循环default //开关语句中的“其他”分支do //循环语句的循环体double //声明双精度变量或函数else //条件语句否定分支(与if连用)enum //声明枚举类型extern //声明变量,引用其他文件的变量float //声明单精度浮点型变量或函数for //一种循环语句goto //无条件跳转语句if //条件语句int //声明整数型变量或函数long //声明长整型变量或函数register //声明寄存器变量(表示建议将变量的值存放在寄存器中)return //表示把程序流程从被调函数转向主函数并把表达式的值带回主函数,实现函数值的返回,返回时可附带一个返回值short //声明短整型变量或函数signed //声明有符号类型变量或函数sizeof //操作数的类型长度(以字节为单位)static //声明静态变量,修饰变量和函数struct //声明结构体变量或函数switch //用于开关语句typedef //类型重命名:typedef unsigned int u_int(将unsigned int用u_int代替)union //声明联合数据类型unsigned //声明无符号类型变量或函数void //声明函数无返回值或无参数volatile //C语言阶段暂时不学while //循环语句的循环条件
注意:define和include是预处理指令,不是关键字。、
static修饰局部变量--静态局部变量:改变了局部变量的生命周期。(本质上是改变了变量的类型)
内存分为三个区域:
| 栈区:存放局部变量和函数的参数 |
| 堆区:用于动态内存的分配 |
| 静态区:存放全局变量和static修饰的静态变量 |
void test()
{
static int a=1;//a原本出了大括号就该销毁的,但是有了static的修饰相当于全局变量,不能再次声明
a++;
printf("%d",a);
}
int main()
{
int i=0;
while(i<10)
{
test();
}
return 0;
}
输出结果为:2 3 4 5 6 7 8 9 10 11
static修饰全局变量--静态全局变量:使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用
全局变量在其他源文件内部可以被使用,是因为全局变量具有外部链接属性但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了。(相当于不能被其他文件引用)
static修饰函数--静态函数:使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用。
本质上:static是将函数的外部链接属性变成了内部链接属性。(和static修饰全局变量一样)
#define定义常量和宏
1.define定义标识符常量
define MAX 1000
2.define定义宏
#define ADD(x,y) ((x)+(y))
例如:
#include
int main()
{
int sum=ADD (2,3);//将ADD(2,3)换成了((2)+(3))
pprintf("sum=%dn",sum);
sum=10*ADD(2,3);
printf("sum=%dn",sum);
return 0;
}
输出结果为:50
总结:今日总学习时长6小时,目前学习到的知识都还算简单,没有特别难理解的,再接再励



