C/C++刷题总结(2)

  1. 关于拷贝构造函数,重载赋值运算符
    A b = a;
    此情况属于:一个对象(b)需要通过另外一个对象(a)进行初始化
    这种情况需要利用拷贝构造函数,除此之外,还有两种情况需要调用拷贝构造函数
    (1) 一个对象以值传递的方式传入函数体
    (2)一个对象以值传递的方式从函数返回
    A b;b=a;
    此情况属于:定义了一个对象(b),然后调用后面重载的赋值函数
    A *b = new A;
    此时调用了构造函数,但是注意,这里的赋值运算符不是类中的赋值运算符,而是普通的赋值运算符;

如果定义一个指针或者引用,不会调用构造函数

拷贝构造函数没有返回值,拷贝构造函数的参数可以使一个或多个,但左起第一个必须是类的引用对象

  1. 关于scanf里的%xd
    scanf(“%3d%f”,&x,&y);则会将输入的前3位数赋给x,输入中后面的部分将赋给y,
    如输入12345□678↙,则x=123,y=45.000000。

  2. double类型可以与int,float进行匹配
    如果同时出现两种函数,会出现多个匹配

  3. 内联函数
    一般可以用于加快程序执行速度,但是可能增加也可能减少可执行文件大小
    构造函数可以是内联函数

  4. sizeof和strlen
    sizeof返回所占内存空间,strlen返回字符串长度
    char *str1 = “Hello”,str2[] = “Hello”;
    sizeof(str1)= 4
    sizeof(str2)= 6

但是得注意八进制转义字符和十六进制转义字符
八进制字符的一般形式是’\ddd’,d是0-9的数字。十六进制字符的一般形式是’\xhh’,h是0-9或A-F内的一个
如strlen以下字符串,结果为
" 0123\0789 " 7 (0 ,1,2,3,\07,8,9)
" 0123\0123 " 6(0 ,1,2,3,\012,3)
" 0123\0889 " 4(0 ,1,2,3,\0)

  1. 计算结构体空间
    注意#pragma pack(4)与8
    每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行
    注意点
    1 先找有没有v

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值