数据类型Float与Double的细微差别
相同点:
-
- 同属于浮点型
-
- 同只能运用于小数的类型的存储。
不同点:
- double比float更精确
Float与Double的不同使用而导致的不同含义:
- 1.float(单精度浮点型)
- ——占用空间为4个字节
咋们具体看代码:
int main()
{
float pai = 3.14;
//此处应该在小数的后面加上f,否则编译器会把它看作是一个double类型的
printf("%f\n", pai);
double pai_1 = 3.1415926;
printf("%lf\n", pai_1);
return 0;
}
*此处虽然可以编译,但会出现一个警告:就是这个若没有后缀f的话,那么编译器就会自动的认为此数是一个双精度的浮点数,即会出现上图所示的警告:发生截断。——所以为了代码的精确性:在使用单精度浮点数来表示小数的时候,还是在小数后面加上f为好!
- 2.double(双精度浮点型)
- ——占用空间为8个字节
![在这里插入图片描述](https://img-blog.csdnimg.cn/57d1cb55e1264584a6dfaa3c20d05990.pn
咋们看上面的代码的输出结果:主看两个double类型的区别,一个是用printf打印的时候是 f ,一个是 lf 。二者的输出结果是一样的,那么我们就可以判定lf 与 f的使用在用printf打印时是一个意思罢了。其实本质上来说 lf 是运用于long double 这个精确度更高的浮点型的。
-
上面我们看了浮点型浅显区别在什么时候使用 f 和 lf 的区别:
-
接下来我们看看 float 与 double 在精确度上的问题:
double是C语言的一个关键字,代表双精度浮点型,占8个字节内存空间,其数值范围为“1.7E-308~1.7E+308”,双精度完全保证的有效数字是15位,16位只是部分数值有保证。
C语言中,float和double都属于浮点数。区别在于:double所表示的范围,整数部分范围大于float,小数部分,精度也高于float。
举个例子:圆周率3.1415926535 这个数字,如果用float来表示,最多只能精确到小数点后面的6位。而double大约能精确到小数点后面的15位左右。具体精确到几位,跟所用的编译器有关,但是各个编辑器编译器之间,也是相差不大的。
**至于整数部分,float表示的整数部分的范围,就已经够大了,能表示到万亿级别,已经大到没边了。而double所表示的整数范围,大到更没边了。实际开发中,除了个别高精领域,基本上,使用float就足够了。
单目操作符与双目操作符
- 单⽬操作符:++、–、+、-
- 双目操作符:+= -=
*= /= %= >>= <<=
&= |= ^=
***** 如何快速的知道一个符号是单目操作符还是双目操作符****
*1.单目操作符,附近只有一个数,像在++ – 这种的,不能在它操作符的两边都有数字的,只能有一个数字的,就是单目操作符。
*2:双目操作符,同上面相反,即像在& | && || 这种样式的,它的附近不可以只跟一个数字,跟了的话,直接就是个语法错误。必须两边都有数才行。
-
此处我们重点讲一下单目操作符:
-
前置++
-
计算⼝诀:先+1,后使⽤;
-
后置++
-
计算⼝诀:先使⽤,后+1
-
前置–
-
计算⼝诀:先-1,后使⽤
-
后置–
-
计算口诀:先使用,后-1
-
+和-
-
这⾥的+是正号,-是负号
-
关于单目操作符的具体运算,大家可以看下面的截图代码,加之理解:![在这里插入图片描述](https://img-blog.csdnimg.cn/78f8e9aa409c4dfebdfa1053f3a80315.png
-
【注】:在进行混合运算的时候,单目操作符的优先级大多是高于双目操作符的。
需要详细了解的,可转载此处
全局变量与局部变量
-
全局变量:在⼤括号外部定义的变量就是全局变量
全局变量的使⽤范围更⼴,存储在静态区。整个⼯程中想使⽤,都是有办法使⽤的。 -
局部变量:在⼤括号内部定义的变量就是局部变量
局部变量的使⽤范围是⽐较局限**,存储在栈区**,只能在⾃⼰所在的局部范围内使⽤的。
全局变量和局部变量学起来,没有任何难点。但它们两者之间有个却有个特别的规定,我们要知道:其实当局部变量和全局变量同名的时候,局部变量优先使⽤**。**
看代码: