C/C++低级语法错误
strlen和sizeof表示不同的含义。
strlen表示的是一个计数器的工作,它是从内存的某个位置(这里的位置可以是字符串开头,中间某个位置,也可以是某个不确定的内存区域)开始扫描,然后直至碰到第一个字符串结束符'\0'为止,然后返回计数器值。
sizeof在C语言中是用于判断数据类型或者表达式长度的运算符。
2、在程序中运行strlen和sizeof的运行结果有区别。
strlen后是不加最后的结束标志'\0',其表示字符串的长度。而sizeof求的是字符串所在内存中的长度,所以它是加上最最后的结束标志'\0'的。如果传入不是地址,报错。
char str[] = "ab"; 等价于 char str[] = {'a', 'b', '\0'}; 不等于char sn[] = {'a', 'b'};
sizeof(数组) 返回数组大小,sizeof(指针) 返回指针大小
class 大小
成员变量对齐,普通函数不占空间,有虚函数时,增加一个虚函数表指针变量
printf格式
%u,无符号十进制整型;
%lu,无符号十进制长整型;
int node = (int)malloc(sizeof(node)); 可编译通过,分配8字节内存
继承的内存布局
每个类都包含父类的全量数据,如果有2个父类,且2个父类继承同一个基类,则子类包含2个父类中各自基类(包含2个基类)的内存。
--i--;编译错误,--i结果为右值,无法自减
设置观察点的命令包括如下:
- watch 命令:设置观察点
- rwatch 命令:设置读观察点
- awatch 命令:设置读写观察点
C++继承内存布局 - 多继承(无虚继承)_imJaron的博客-CSDN博客
C++继承内存布局 - 多继承(无虚继承) - 程序员大本营