为什么要引入数据类型
整型
/usr/include/limits.h中有数据类型范围的定义。
如何获取某个数据类型所占用的空间数(字节)
sizeof运算符
语法: sizeof(变量名称或者数据类型)
sizeof返回值:默认是一个无符号长整型(所以用%ld)
变量的用法:变量用来在程序中保存数据
计算机中每个字节(1字节 = 8 bit)的存储空间都有对应的地址
语法:(以int为例)
int a;
int a,b,c;
给变量赋值:赋值运算符 “=”将右边的值赋给左边的变量
int a = 20;
变量必须先定义(声明)后使用
a = 100;
int a;
//错误
字符型
计算机通过Ascii码把二进制转换为字符
查看ASCII码表: man ASCII
大写字母转小写字母 +32
小写字母转大写字母 -32
数字字符的ASCII等于他对应的数字+48
#include<stdio.h>
int main()
{
char c1 = 'a';
printf("%c\n",c1-32);
int a = 3;
char c2 = a + 48;
printf("%c\n",c2);
return 0;
}
//输出结果为A
// 3
语法:
char 变量名 = '字符';
浮点型
占用字节:
浮点数 —— 指数形式装换:
0.008 —— 8E - 3(8 * 10^(-3))
以上均可以输出0.008
浮点数的精度
float:6位
double:16位
longdouble:16位
浮点型—存储
IEEE-754 Floating Point Converter (h-schmidt.net)
该网址可以直接求得:浮点数在IEE754下在计算机中所存储的二进制值
为什么f1循环语句结果为0?
答:浮点数常数默认是double类型,2.2f是float类型。
浮点数怎么做比较(核心:自定义精度)
浮点数存储时,存在精度损失,大多数浮点数不是一个精确表示的数。
//not equal
如何进行正确的浮点数比较?
fabs()函数:对括号内的值求绝对值。
bool、void类型
bool
//结果1 ture 1
上述的函数也可以改为以下:
注意:bool数据类型的数值只有1和0两种,任何非0数值转换为bool类型都为1。
例:
//结果:0 1 0 1