• sizeof 和逗号运算符


    sizeof 运算符

    • sizeof 运算符返回一条表达式或一个类型名字所占的字节数。
    • sizeof 运算符满足右结合律,其所得的值是一个 size_t 类型。
    • 运算符的运算对象有两种形式:
    sizeof(type)
    sizeof(expr)
    
    

    sizeof 运算符的结果部分地依赖于其作用类型:

    • char 或者类型为 char 的表达式执行 sizeof 运算,结果得1。
    • 对引用类型执行 sizeof 运算得到被引用对象所占的空间大小。
    • 对指针执行 sizeof 运算得到的指针本身所占空间的大小。
    • 对解引用指针执行 sizeof 运算得到指针所指向的对象所占的空间大小,指针不需要有效。
    • 对数组执行 sizeof 运算得到整个数组所占空间的大小,等价于对数组中所有的元素各执行一次 sizeof 运算得到的结果求和,注意 sizeof 运算不会将数组转换成指针类型。
    • string 对象或者 vector对象执行 sizeof 操作,只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。

    注意:
    因为执行sizeof 运算得到整个数组的大小,所以可以用数组的大小除以单个元素的大小得到数组中的元素个数:

    sizeof(ia) / sizeof(*ia);   //返回ia的元素的数量
    

    逗号运算符

    • 逗号运算符含有两个运算对象,按照从左向右的顺序依次求值。
    • 首先对左侧的表达式求值,然后将其值丢掉,逗号运算符真正的结果是右侧表达式的值。
    • 逗号运算符经常被用在 for 循环当中:
    vector<int>::size_type cnt = ivec.size();
    for(vector<int>::size_type ix = 0;ix != ivec.size();++ix,--cnt)
        ivec[ix] = cnt;
    
  • 相关阅读:
    SVN迁移到GIT
    Android之高效率截图
    Android TV 开发(5)
    Android 标题栏(2)
    Android 标题栏(1)
    C# 之抽象类和抽象方法
    浏览器渲染原理及流程
    C#中的DateTime
    由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
    配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12498299.html
Copyright © 2020-2023  润新知