一.控制符
- %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 <stdio.h>
int main()
{
int sum=ADD (2,3);//将ADD(2,3)换成了((2)+(3))
pprintf("sum=%d\n",sum);
sum=10*ADD(2,3);
printf("sum=%d\n",sum);
return 0;
}
输出结果为:50
总结:今日总学习时长6小时,目前学习到的知识都还算简单,没有特别难理解的,再接再励