第二章 对象与基本类型(weiwan)

这里简要保存一下对于我第二章学到的一些知识点。

类型在程序中是一个编译期的概念,在可执行文件中没有类型这一概念。

1.类型包含了:

  • 1.数据在内存中所保存的尺寸,C++标准中没有严格的限制,对于每一种硬件环境可能都是不同的,但限定了某种类型的最小尺寸,可以通过sizeof()来查询某一类型在环境中的具体尺寸。
  • 2.取值空间,超过范围会产生溢出(上溢出、下溢出)(std::numeric_limits<>)
  • 3.对齐信息,整理储存空间(alignof),对齐会影响到结构体数据的存放,一般会以结构体中最大的类型尺寸为结构体中对象的存储单元。
    #include<iostream>
    struct Str
    {
    	int a;
    	char b;
    };
    int main()
    {
    	
    	char a = 'a';
    
    	std::cout << alignof(char) << std::endl;
    	std::cout << alignof(Str) << std::endl;
    }
    

    2.对象是变量或常量的总称,初始化将数值与对象关联起来。声明与定义存在着差别,可以用extern声明外部定义。

    extern int g_x;

    声明这个函数的定义不在该文件中,系统将在目录中寻找g_x的定义

    3.这里有一个缺省初始化的知识点,在函数内部定义变量但未赋值时,会在系统内部开辟存储空间,并给这个空间赋随机值。在全局下的初始化变量(静态变量、线程局部变量)时,会在系统内部开辟空间并赋0.

    4.类型相关标准未定义部分

    —char是否有符号

    —整数中内存的保存方式:大端和小端

    计算机系统是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但对于位数大于8位的处理器,如16位或32位的处理器,由于寄存器宽度大于一个字节,那么必然存在一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式的出现。在跨系统传输数据的时候需要考虑这个问题。

    —每种类型的固定大小

    上面提到过C++中没有对类型尺寸的上限做特殊限制,但为了统一标准,在C++11中引入了固定尺寸的整数类型,如int32_t (32bit)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值