一、变量的作用域和生命周期
局部变量的作用域:是局部变量所在的局部范围
全局变量的作用域:是整个工程
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期是:整个程序的生命周期
浮点类型
说明:尾数部分可能丢失,造成精度丢失。
浮点型使用细节
1.浮点型常量默认为double型 , 声明float型常量时, 须后加‘f’或‘F’。
2.浮点型常量有两种表示形式
十进制数形式:如: 5.12 512.0f .512 (必须有小数点)
科学计数法形式:如: 5.12e2 、 5.12E-2
3.通常情况下,应该使用double型,因为它比float型更精确。
4.printf("d1=%f ", d1); // 在输出时,默认保留 小数点6位
关于输入输出格式
1.对于double类型,输入格式为scanf(“%lf %lf”, &A, &B);
对于float类型,输入格式为scanf("%f %f, &A, &B);
2.对于double类型和float类型,输出格式均为printf(“%f %f\n”, A, B);
几种打印符号
%d - 打印整型
%s - 打印字符串
%c - 打印字符的
%p - 专门用来打印地址的
\0是字符串的结束标志
不完全初始化,数组有4个元素,只给3个字符初始化,剩余一个没有给值,默认被初始化为'\0'
char arr[4] = { 'b', 'i', 't'};
// [b i t \0]
#include <string.h>
strlen 在求字符串长度的时候,统计的是\0之前的字符的个数
1.同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
2.转义字符
\n 换行
\t 横向跳格(跳到下一制表位置)
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜杠字符’\’
\’ 单引号字符
\a 鸣玲
\0 空字符
\? 代表一个问号,防止被解析成三字母词
\ddd 1到3位八进制数所代表的字符 数字要转化为十进制再对照ASCLL码值输出结果
\xhh 1到2位十六进制数所代表的字符
三字母词:??) 相当于 ]
\?\?) --> ??)
3. C语言中,0表示假,非0表示真
4. ? : 条件表达式 , 如果条件为真 ? 则值为 X : 否则值为 Y
5.EOF(-1)-->end of file 文件的结束标志
6.static的作用是什么呢?
1. 修饰局部变量
2. 修饰全局变量
3. 修饰函数
(1) static修饰局部变量
一个普通的局部变量是放在栈区的,而被static的修饰的局部变量,是放在内存的静态区的存储位置发生了变化,使得局部变量出了作用域不会销毁,影响了变量的生命周期作用域不受影响 (2) static修饰全局变量
一个全局变量在整个工程中都可以使用的!全局变量是具有外部链接属性的,在其他源文件内部
只要适当地声明就可以使用static修饰全局变量这时全局变量的外部链接属性就变成了内部链接属性,只能在自己所在的.c文件内部使用,其他.c文件无法使用,影响了变量的作用域 (3) static 修饰函数
函数是具有外部链接属性的static 修饰函数 后,函数的外部链接属性就变成了内部链接属性被static修饰的函数只能在自己所在的.c文件内使用,其他.c文件无法使用最终相当于影响了作用域
声明外部符号 :extern,可以连接其他.c文件使用。
7.指针大小在32位平台是4个字节,64位平台是8个字节。