警告
从 double类型转换到float类型可能会出现数据丢失 (j警告)
float类型可以存放小数 打印用%f来处理浮点值,%.2f中的.2表示保留2位小数
scanf("",&); 是输入函数 &为取地址符
变量和常量
可变化的叫变量
不可变化的叫常量
最初K&R给出的关键字 | C90标准添加的关键字 | C99标准添加的关键字 |
---|---|---|
int | signer | _Bool |
long | void | _Complex |
short | _Imaginary | |
unsigned | ||
char | ||
float | ||
double |
位,字节,字
最小的存储单位是位,可储存0和1
字节是常用的计算机存储单位,1字节 = 8位
字是设计计算机是给定的自然存储单位。有8位,16位,32位,64位。计算机的字长越大,其数据转移越快,允许的内存访问也越多。
整数
在C语言中整数是没有小数部分的数
浮点数
只要加一个小数点就变成浮点数
e的记法:10000000=1e7
注意
对于算数运算(如两个很大的数相减),浮点数损失的精度更多。
浮点数比整数运算慢
C语言中的数据类型
int类型
- 它是符号整型(正整数,负整数,零)
- ISO-C规定int的取值范围最小为-32768~32767
- 打印时需要%d(转换说明)而且要确保转换说明的数量和待打印值的数量相同
- short int类型 占用的存储空间可能比int类型少。(有符号类型)
- long int类型占用的存储空间可能比int多。(有符号类型)
- unsigned int类型终于的存储空间可能比long多取值范围0~65535无符号整数可以表示更大的数
- C90标准添加了unsigned long int, unsigned short int, C99标准中添加了unsigned long long int
- 在任何符号类型片面添加关键字signed可强调使用有符号类型的意图
打印
%u 用于打印unsigned int的整数
%ld 用于打印long类型的整数
%lx 用于打印十六进制的long类型的整数
%lo 用于打印八进制的long类型的整数
注意转换符中只能用小写
%hd 用于打印short类型整数
%ho 用于打印八进制的short类型的整数
h和l前缀都可以和u一起使用表示无符号类型
%lu 表示打印unsigned long类型的值
%lld 和 %llu 表示有符号和无符号类型
八进制和十六进制
1.0X或0x的前缀表示十六进制,0表示八进制
2.八进制用%o打印,十六位用%x打印,若显示进制位数的前缀则必须用%#o,%#x,%#X
char类型
- char类型用于存储字符但从技术上看他是整数类型
- 标准ASCII码的范围是0~127
- C语音把椅子姐定义为char类型占用的位数(bit)
- 在C语音中单引号括起来的单个字符被成为字符常量 ‘A’ 如果用双引号括起来则被看作是一个字符串
非打印字符
转义序列
- \a 报警
- \b 退格
- \f 换页
- \n 换行
- \r 回车
- \t 水平制表符
- \v 垂直制表符
- \\ 反斜杆
- \' 单引号
- \" 双引号
- ? 问号
- \0oo 八进制 0 代表0~7
- \xhh 十进制 hh代表十六进制
_Bool 类型
ture 1 和false 0
可移植类型 stdin.h和inttypes.h
附录B
float double long double
- 在浮点数后加F或者f后缀可以覆盖默认设置
- 后缀L 或 l 可以变为long double类型
- 没有后缀默认为double类型
- 在十六位进制数前加上十六位前缀(0X或0x)用p或者P表示e或者E, 2的幂代表10的幂(p计数法)
如0xa.1fp10→(10+1/16+15/256)× 1024 也就是十进制的10364.0 - %e打印指数计数法的浮点数
虚数和复数
复数 float_Complex, double_Complex, long double_Coplex
虚数 float_Imaginary, double_Imaginary, long double_Imaginary
如果包含 complex.h头文件 便可用complex代替_Complex 用imaginary代替_Imaginary I代替-1的平方根
其他类型
c中没有字符串类型
类型大小
使用内置函数 sizeof()
打印用%zd 不支持的话 可以用%u或者%lu代替
如果发现错误请及时评论和私信!
同时也欢迎大家一起加入我的学习中!寻找志同道合的人!