牛客网-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 个字节
float 4 个字节
double :   8 个字节
long :   4 个字节
  long long 8 个字节
unsigned long 4 个字节
64 位编译器
char 1 个字节
char *(即指针变量): 8 个字节
short int : 2 个字节
int :  4 个字节
unsigned int : 4 个字节
float 4 个字节
double :   8 个字节
long :   8 个字节
long long 8 个字节
unsigned long 8 个字节

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

 

 

转载于:https://www.cnblogs.com/bananaa/p/7388842.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值