牛客网错题集-C++

本文详细介绍了C++中的枚举初值、地址运算、类大小计算、虚函数继承中的函数调用、静态局部变量以及深浅拷贝的概念。枚举默认初始化值、地址运算的字节计算、类成员对齐方式、虚函数调用机制、静态局部变量的存储特性以及拷贝构造与复制运算符在深浅拷贝中的作用,都得到了深入讨论。
摘要由CSDN通过智能技术生成

1. 枚举初值

enum string{    
    x1,    
    x2,    
    x3=10,    
    x4,    
    x5,    
} x;

函数外部问x等于什么?
定义在函数外是全局变量,程序初始化为0;若是定义在函数内,编译器提示变量未初始化错误。此时x1=0,x2=1,x3=10,x4=11,x5=12。相应的,若x1=’a’,则输出时,x1=97(取’a’的ascii码值),x2=98,以此类推。同时枚举类型数据占4个字节,与int相同。

2.地址运算

unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;

请问p1+5= 什么?
p2+5= 什么?
1代表的是一个单位量
p1+5=p1+5*1=p1+5*sizeof(unsigned char)=p1+5*1=0x801000+ox5=0x801005
p2+5=p2+5*1=p2+5*sizeof(unsigned long)=p1+5*4=0x810000+20=0x810000+0x14=0x810014
最后要转换成16进制。

3. 类所占字节大小计算

若char是一字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值