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