C是有类型的语言

  • C语言的变量,必须:
  • 在使用前定义,并且
  • 确定类型

  • C以后的语言向两个方向发展:

  • C++/Java更强调类型,对类型的检查更严格
  • JavaScript、Python、PHP不看重类型,甚至不需要事先定义

    类型安全

  • 支持强类型的观点认为明确的类型有助于尽早发现程序中的简单错误

  • 反对强类型的观点认为过于强调类型迫使程序员面对底层、实现而非事务逻辑
  • 总的来说,早期语言强调类型,面向底层的语言强调类型
  • C语言需要类型,但是对类型的安全检查并不足够

    C语言的数据类型

    image.png
    image.png

    size of

  • 静态运算符,它的结果在编译时刻就决定了

  • 不要在sizeof的括号里做运算,这些运算不会做的

image.png
image.png
image.png
int 32bit(4个字节)
long 32bit(4个字节)
字长:CPU中寄存器一次可以处理的reg
image.png

整数的内部表达

image.png
image.png
十进制的时候,负号和数字分开

怎么表达负数

image.png
image.png

数的范围

image.png
image.png
当数据的最高位为1时,表示它是负数,这个数据是补码

image.png
-2~~2-1

unsigned

image.png
unsigned char 只表示零和正整数,扩大了正整数范围,方便其做移位运算,

整数越界

image.png
image.png

整数的输入输出

image.png
image.png

8进制和16进制

image.png
image.png

选择整数类型

image.png

浮点数类型

image.png
image.png

科学计数法

image.png

输出精度

image.png
image.png

超过范围的浮点数

image.png
image.png

image.png
浮点数怎么判断是否相等,两数之差在一定精度内

浮点数的内部表达

image.png

选择浮点类型

image.png

字符类型

image.png

字符的输入输出

image.png
image.png

字符计算

image.png

大小写转换

image.png

逃逸字符

image.png
image.png

\b

image.pngimage.png

\t

到达下一个固定的位置
image.png

自动类型转换

image.png
image.png

强制类型转换**

不能小转大
大转小的时候,从低位开始取,取够相应类型的字节数。
image.png

优先级高于四则运算

image.png

程序是怎么运行的

image.png