C++札记

1、在const成员函数中,用mutable修饰成员变量名后,就可以修改类的成员变量了。

 

2、在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内的元素的长度都小于处理器的位数的时候,便以结构体里面最长的数据元素为对齐单位,也就是说,结构体的长度一定是最长的数据元素的整数倍。如果结构体内存在长度大于处理器位数的元素,那么就以处理器的位数为对齐单位。

3.X86CPU能直接访问对齐的数据,当它试图访问一个未对齐的数据时,会在内部进行一系列的调整。这些调整对于程序来说是透明的,但是会降低运行速度。

4.堆是后进先出,栈是先进先出。

5.局部变量是存放在栈中,参数也是放在栈中;静态变量与全局变量不在栈中,也不在堆中,存放在全局数据区。malloc/new分配的内存/对象在堆中

6、sizeof和strlen的区别:

(1)sizeof操作符的结果类型是size_t,它在头文件中的typedef为unsigned int类型。这类型保证能容纳实现所建立的最大对象的字节大小。

(2)sizeof是运算符,strlen是函数。

(3)sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以"\0"结尾的。sizeof还可以用函数做参数。

(4)数组做sizeof的参数不退化,传递给strlen就退化成指针。

(5)大部分编译程序在编译的时候就把sizeof计算过了,是类型或是变量的长度。这就是sizeof(x)可以来定义数组维数的原因。

(6)strlen的结果要在运行时才能计算出来,用来计算字符串的长度,而不是类型占内存的大小。

(7)sizeof后如果是类型必须加括号。如果是变量名可以不加括号。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值