深蓝C++ 第三章节;

 

初始化和赋值语句是程序中最基本的操作;其功能为将某个值与一个对象关联起来;

值和标识符

    • 字面值:例如数值、字符等直接表示的值。
    • 对象:变量或常量所表示的值。
  • 标识符
    • 变量、常量、引用等名称。

初始化基本操作

  1. 在内存中开辟空间,保存相应的数值

    • 当我们声明一个变量时,系统会在内存中为这个变量分配空间,并保存这个变量的值。
    • 例如,声明一个整数变量并赋值:
    • int x = 10; // 在内存中开辟空间并存储数值10
      

      在编译器中构造符号表,将标识符与相关内存空间关联起来

    • 编译器会创建一个符号表,将变量名(标识符)与其在内存中的地址关联起来。
    • 例如,声明一个变量时,编译器会记录变量名和内存地址:
    • int y = 20; // 编译器将变量名y与其内存地址关联
      

      值与对象都有类型:

    • 变量、常量、引用等在声明时都需要指定类型,这有助于编译器进行类型检查和内存分配。
    •  
      double pi = 3.14; // pi是一个double类型的变量
      

      类型转换

    • 初始化和赋值可能涉及到类型转换:
      • 在某些情况下,可能需要将一个类型的值转换为另一个类型,以确保操作的正确性和兼容性。
      • 例如,将整数转换为浮点数:
      • int a = 5;
        float b = static_cast<float>(a); // 将整数a转换为浮点数
        

  • 类型是一个编译期概念,可执行文件中不存在类型的概念

    • 在C++中,类型是一个编译时的概念,用于在编译时检查数据的正确性和一致性。然而,一旦程序被编译成可执行文件,类型信息就不再存在。这意味着类型检查在编译期完成,而不是在运行时。
  • C++ 是强类型语言

    • C++是一种强类型语言,意味着变量在使用之前必须先声明其类型,且类型转换必须是显式的。这有助于防止类型错误和提高代码的安全性。
  • 引入类型是为了更好地描述程序,防止误用

    • 使用类型可以更清晰地描述程序的意图,并防止数据被误用。例如,使用类型可以防止将整数误用为浮点数或将字符误用为字符串。
  • 类型描述了

    • 存储所需要的尺寸 (sizeof,标准并没有严格限制)
      • sizeof运算符用于确定某种类型或变量所占用的字节数。标准虽然没有严格限制,但通常会有特定的实现方式。
    • 取值空间 (std::numeric_limits,超过范围可能产生溢出)
      • std::numeric_limits模板类提供了有关类型的极限值的信息,如最大值和最小值。如果变量取值超过其类型范围,可能会产生溢出,导致不可预测的行为。
    • 对齐信息 (alignof)
      • alignof运算符用于获取类型的对齐要求。对齐是指数据在内存中的存储方式,以提高访问效率。
    • 可以执行的操作
      • 类型还决定了可以对变量执行哪些操作。例如,整数可以进行加减乘除运算,而字符可以进行比较操作等。

基本类型

基本类型是 C++ 语言中所支持的原始类型,主要包括以下几类:

数值类型
  1. 字符类型

    • char: 基本字符类型,通常占用 1 个字节
    • wchar_t: 宽字符类型,支持多字节字符。
    • char16_t: 16 位字符类型,通常用于 UTF-16 编码。
    • char32_t: 32 位字符类型,通常用于 UTF-32 编码。
  2. 整数类型

    • 带符号整数类型
      • short: 短整型。通常占用 2 个字节
      • int: 整型。通常占用  4 个字节
      • long: 长整型。
      • long long: 更长的整型,通常占用 8 个字节。
    • 无符号整数类型
      • unsigned short: 无符号短整型。
      • unsigned int: 无符号整型。
      • unsigned long: 无符号长整型。
      • unsigned long long: 无符号更长的整型。
  3. 浮点类型

    • float: 单精度浮点型。
    • double: 双精度浮点型。
    • long double: 长双精度浮点型。
    • float: 单精度浮点型

    • 单精度浮点型(Single Precision Floating Point)
    • 通常占用 4 个字节(32 位)的内存。
    • 能够表示的数值范围较大,但有效精度相对较低,一般可以精确到小数点后 6-7 位
    • 用于在内存和计算性能要求较高的情况下表示浮点数。
    • double: 双精度浮点型

    • 双精度浮点型(Double Precision Floating Point)
    • 通常占用 8 个字节(64 位)的内存。
    • 能够表示的数值范围更大,且有效精度较高,一般可以精确到小数点后 15-16 位
    • 用于需要高精度和广泛数值范围的计算场合。
  4. void

    • void: 用于表示没有类型,一般用于函数的返回类型,表示该函数不返回值。
    </
  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值