C语言笔记2
- float类型:至少能表示6位有效数字 占32位
double类型(双精度):至少必须能表示10位有效数字 占64位
通常情况下,编译器假定浮点型常量是double类型的精度
- 如果数据是常量,编译器会根据用户的书写来辨别数据类型 比如42与42.100
如果是变量,则声明时就应该指定好
- bit:位 byte:字节 1byte = 8bit
- 计算机的字长越大,其数据转移越快,允许访问的内存也就越多
- 在一个值后面加上一个小数点,这个值就成为一个浮点值
- 计算机把浮点数分成小数和指数部分并分别储存,比如7.0写作0.7E1
- initialize:初始化 为变量赋一个初始值 int cows = 45, goats = 14;
##尽量不要把初始化的与未初始化的变量放在一起声明
比如 int dogs, cats = 14; 这里只初始化了cats,但dogs并没有被初始化
- %d 对应int类型变量、int类型常量、int类型表达式
- 关于八进制和十六进制:
a. 八进制前缀0 十六进制前缀0x或者0X
b.以十进制显示数字用%d 八进制则是%o 十六进制则是%x
c.如果要显示进制的前缀 八进制是%#o 十六进制是%#x或者%#X
- char类型占用的位数:8 即1字节
- 用' '括起来的单个字符被称为字符常量 char grade = 'FATE' 的值是 'E'
- 双引号不是字符串的一部分,仅仅告知编译器它中间括起来的是字符串
- 数组:数组的容量至少比待储存字符串中的字符数多1
\0是标记字符串结束的空字符(不用自己手动加)
"x"实际上由两个字符构成: 'x' 和 空字符 \0
- strlen()函数:给出字符串中的字符长度 其中, #include<string.h>提供此函数的函数原型
sizeof运算符:以字节为单位给出对象的大小 建议所有情况下都使用圆括号
对于sizeof 会把空字符等全部计入在内 以及数组的所有储存单元
而strlen() 只得出已经用于储存的单元数 并且不包含空字符
- #define NAME value value是符号常量 一般NAME都用大写,看到就可以明白它不是个变量
名称前带c_ 或 k_ 前缀来表示常量 比如 c_level
- 要打印出%,就打两个%%就行(在print函数里)
- scanf()把字符串读入字符数组中,不用使用&
- printf()中字符串的连接: "sadasd" " dwasd " 会把引号的内容拼接起来
- printf()中不希望预先指定字段宽度而是人为输入,则用\*来代替
scanf()中的*放在%和转换字符之间 会使得scanf()跳过相应的输入项
- 截断是丢弃整个小数部分,而不会作四舍五入
混合整数与浮点数计算的结果是浮点数
现在一般是趋零截断 -3.8截成-3