zoukankan      html  css  js  c++  java
  • 牛客网-C++

    2017/8/18

    程序运行结束时才释放;静态变量在内存的静态存储区,静态数据一直占有着该存储单元直到程序结束;一般局部变量在函数调用结束后释放变量占用的存储单元,而静态局部变量不释放。

    静态全局变量的作用域只是定义它的文件,不能被其他文件使用;

    静态局部变量只声明一次,一旦申请内存成功,不再接受重复申请。

    ‘-’ :左对齐;30:最小字段宽度;.4:精确度保留小数4位;f:double精度浮点数;e:科学计数法

    printf中,%f通杀单精度和双精度;scanf中,%f和%lf才有区别

    下面一句是错误的,符合语句形如:

    for(int i=0;i<20;i++) ,这里int在for循环之外就无效了

     类的静态成员属于整个类,而不是某个对象,可以被类的所有方法访问,子类可以访问父类静态成员;

    静态方法属于整个类,在对象创建之前就已经分配空间,类的非静态成员要在对象创建之后才有内存,所有静态方法只能访问惊天成员,不能访问非静态成员。

    静态成员可以被任一对象修改,修改后的值可以被所有对象共享。

     

    64位系统下,指针和double占8个字节,int占4个字节,char占一个字节(64位系统下,指针占用64位,8个字节)

    加上字节对齐(对齐成8个字节)

    所以sizeof(p)=8(p是一个指针);sizeof(*p)=(char 1个字节-->字节对齐成为8字节)+(d作为一个指针占用8字节)+(b作为一个int值占用4字节,int c:16共16位占用两个字节,字节对齐成为8个字节)+(e作为一个double值占用8个字节)=32个字节

    sizeof(p->a)=1;sizeof(p->e)=8

    贴张图吧:

    32位编译器
    char 1个字节
    char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节
    int:  4个字节
    unsigned int : 4个字节
    float4个字节
    double:   8个字节
    long:   4个字节
     long long8个字节
    unsigned long4个字节
    64位编译器
    char 1个字节
    char*(即指针变量): 8个字节
    short int : 2个字节
    int:  4个字节
    unsigned int : 4个字节
    float4个字节
    double:   8个字节
    long:   8个字节
    long long8个字节
    unsigned long8个字节

    _beginthreadex()比较于CreateThread()有更高的线程安全性,不会造成多个线程公用一个全局变量的情况

  • 相关阅读:
    浏览器滚动条操作
    AutoIt实现文件上传
    Selenium上传文件方法大全
    获取ul下面最后一个li或ul中有多少个li
    为元素设置焦点、隐藏选中元素
    添加cookie绕过登陆
    弹出框Alert
    封装find_element
    selenium获取图片验证码
    UI 自动化环境搭建
  • 原文地址:https://www.cnblogs.com/bananaa/p/7388842.html
Copyright © 2011-2022 走看看