当前位置:文档之家› C语言变量的数据类型和赋值笔记

C语言变量的数据类型和赋值笔记

1》知识点
2》归类:整型、字符型、浮点型、布尔类型
1》知识点:
》变量是存储数据的方法;
》变量名可用字母、数字、下划线并且大小写敏感;
》变量第一个字符只能是字母或下划线,不能是数字;
》关键字不能作为变量名;
》声明是指用数据库类型给给变量分配存储空间的过程,由编译器执行;
》未经声明的变量不能被直接使用。

2》归类(数据类型:关键字、所占字节数、数的表示范围、格式控制符、赋值举例)
1GB = 1024MB
1MB = 1024KB
1KB = 1024B (字节:Byte)
1B = 8b (位:bit)
2.1》整型
》有符号短整型:short int,2字节,
-2^15~2^15-1,%hd,short i = 100;
无符号短整型:unsigned short int,2字节,
0~2^16-1,%hu,unsigned short i = 10;
》有符号整型:int,4字节,-2^31~2^31-1,%d,int i = 123456;
无符号整型:unsigned int,4字节,0~2^32-1,%u,unsigned i = 200;
》有符号长整型:long int,8字节,
-2^63~2^63-1,%ld,long i = 123456789L;
无符号长整型:unsigned long int,8字节,
0~2^64-1,%lu,unsigned long i15 = 123456789L;
》有符号长长整型: long long int,8字节,
-2^63~2^63-1,%lld,long long i = 123456789012345L;
无符号长长整型:unsigned long long int,8字节,0~2^64-1,%llu,unsigned long long i16 = 98765432123L;
2.2》字符型
》有符号:char,1字节,-2^7~2^7-1,%c
无符号:unsigned char,1字节,0~2^8-1,%c
》char类型常见问题汇总:
》char类型不可以存储中文
char c4 = ‘中’;//字符类型不可以存储中文
》char类型值可以作为整数类型直接使用
char c1 = 'abc';//当用单引号引起多个字符时,只保留最后一个字符
printf("%c\n", d);//结果输出只有c
char c2 = '';//两个连续的单引号,表示不赋值,所以语法错误
char c3 = ' ’;//至少带一个空格
char c5 = 97;
printf("%d\n", c5);//输出字符对应的ASCII码
printf("%c\n", c5);//输出字符
2.3》浮点型
》单精度浮点型:float,4字节,10^-38~10^37,有效位数6位,%f,float a = 3.14f或3.14F;
双精度浮点型:double,8字节,10^-308~10^307,有效位数15位,%lf,double b = 3.14;
long double,16字节,10^-4932~10^4951,有效位数16位,%Lf,long double c = 3.14L;
》浮点类型常见问题汇总:
》默认的浮点字面值为double类型,如果需要表示float类型的字面值,需要加’f’或’F’后缀。

⁃》浮点数存在舍入误差问题。

由于浮点数内部用二进制的方式来表示十进制,会存在舍入误差。

二进制系统中无法精确地表示1/10,就好像十进
制系统中无法精确表示1/3一样。

对于一些要求精
确运算的场合会导致代码的缺陷。

//舍入误差
double money = 3.0;
double price = 2.9;
printf("%.17lf\n", money - price - 0.1);//二进制数无法精确表示1/10 输出结果:
0.00000000000000008
2.4》布尔类型
》bool,1字节,0或1,%d,bool b = 0或false;
》布尔类型常见问题汇总:
》除了给bool变量赋值0或false以外,其余赋值输出结果都为1。

// bool b2 = true;
// bool b2 = 200;
// bool b3 =“abc”;。

相关主题