Skip to content

数据(常量和变量)

目录


ascii

  • a 97
  • A 65 (大小写字母相差 32)
  • 0 48

标识符命名规则

字母数字下划线组成

变量名只能以字母下划线,**$**开头

visual studio 中可用中文作变量名

变量&变量类型

//待补充:整数溢出

  • float 在运算时很容易被转换成 double(混合计算,传参),所以直接用 double 就行
  • 参加+, -, *, / 运算的两个数中有一个数为 float 型数据,则运算的结果是 double 型
  • 常量无 unsigned 型

浮点数:

c
21.00.910.0
    //等价于21. , .91 , 0. 或 .0
    //按双精度常量处理
3.14159等价于0.314159e1
    //可用指数形式表达
    //按双精度常量处理

储存方式如下:

数符数字部分指数部分
+.3141593

进制

0x/0X 开头 //该数字为 16 进制数

0 开头 //该数字为 8 进制数

0b/0B 开头 //该数字为 2 进制数

数据类型

int 范围约为 ±2147483647

数据类型占用空间取值范围
short(短整型)2 字节(-2^15 ~ 2^15-1)
int(整型)4 字节(-2^31 ~ 2^31-1)
long(长整形)Windows&Linux(x32)-4 字节 /Linux(x64)-8 字节(-2^31 ~ 2^31-1)
long long(长长整形)8 字节(-2^63 ~ 2^63-1)
char(字符型)1 字节
float(单精度浮点型)4 字节7 位有效数字 (小数点左边的 0 也算)
double(双精度浮点型)8 字节15~16 位有效数字 (小数点左边的 0 也算)

C 语言中的基本类型为 int、char、float,其他类型都是由这些基本类型衍生出来的。

[unsigned] [short/long [long]] int // 可随意组合

数据的存储方式

int类型通常是一个有符号整数,表示方式为二进制补码

  • 补码表示:
    • 对于正数,补码和原码相同。
    • 对于负数,补码是原码的反码加 1。
      • 例如,对于一个 8 位的 int:
        • +5 的二进制表示为 00000101。
        • -5 的二进制补码表示为 11111011(原码 10000101,取反为 11111010,加 1 为 11111011)。

因为0 被放到了正数的范围内,所以负数的范围比正数的范围大 1

类型转换

非 0 数可转化为 true

可以给逻辑型输入 true/false 和任意数字,逻辑型只输出 0 或 1:

c
1//true(非0即为true)
0//false
cout<<true;//输出1

数值运算时先转换成(式中所占储存最大的)类型再运算:

c
//三目运算符中的数值转换
x>y?1:1.5
//条件表达式的值的类型为二者中较高的类型
//输出1.0(双精度)或1.5

//待补充:数据类型以及占用空间大小

强制类型转换:

c
数据类型(操作数)or(数据类型)操作数

转换的规则:

将一个 int、short 或 long 型数据赋给一个 char 型变量时,只将其低 8 位原封不动地送到 char 型变量

c
short int i=289;
char c;
c=i;//c=33

将 signed(有符号)型数据赋给长度相同的 unsigned(无符号)型变量时,将存储单元内容原样照搬//-1→65535

数据类型定义

编译器遇到小数默认为 double

c
3E2 //科学计数法,等价于3*10^2,视为double型
long a=666L//加l或L(语法规范)
float a=3.14F//加F或f(语法规范)//3.14被视为double
float a=3 F// 3被视为int型(l和L同理)

tips:用强制类型转换也可以

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1