C++ 知识 字节序 一个字(32位 机器采用 32 bits 字长 4 bytes) 在内存中 大小端模式 大端法:大多数 IBM 机器, Internet 传输 是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端法:Intel 兼容机 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。 变量 内存地址从高到低 左移与右移 逻辑右移,直接填充0; 算术右移,可能1可能0;右移采用哪种方式,取决于编译器。 有符号数尽可能不要右移,因为移走的位填充与符号位有关,负数填充1. 左移直接填充0。 数组初始化 记住三点: int 型数组全局数组,未初始化时,默认值都是 0;局部数组,未初始化时,默认值为随机的不确定的值;局部数组,初始化一部分时,未初始化的部分默认值为 0; char 型数组全局数组,未初始化的部分,默认值为 ‘ ’ ;局部数组,未初始化时,默认值不可预知。局部数组,初始化一部分后,未初始化部分默认值为 ‘ ’ ; double ,float 型数组全局数组,未初始化时,默认值都是 0.0;局部数组,未初始化时,默认值为随机的不确定的值;局部数组,初始化一部分时,未初始化的部分默认值为 0.0; bool 型数组全局数组,未初始化时,默认值都是 0;局部数组,未初始化时,默认值为 204;局部数组,初始化一部分时,未初始化的部分默认值为 0; 原文链接:【编程语言】C++中未初始化的数组的默认值问题_机灵鹤的博客-CSDN博客_c++数组默认值 for 循环访问二维数组 Tips for row: for column 在一个小的时间窗口内,访问的地址变量越接近,执行速度越快。按行存储一般来说将长的循环放在内层,短的循环放在外层,减少循环次数。 vector vector 实际上面向对象的动态数组,可动态扩容 capacity 查看容量 size 查看当前存储的个数 insert 任意位置插入 erase 任意位置删除 字符串 字符串变量与常量 字符串变量 字符串是以空字符‘\0’结束的字符数组空字符‘\0′ 自动添加到祖父穿的内部表示中在声明字符串变量时,应该为这个空结束符’\0′ 预留一个额外素的空间, “”表示字符串, ‘’表示字符。 字符串常量 字符串常量是一对双引号括起来的字符序列字符串中的每个字符作为一个素存储 字符串的指针表示方法 char* ptr = “hello”; char ptr2[10] = {“hello”}; ptr地址可变, ptr2的地址不可变; 如果指向的是字符串常量,ptr[index]不可; 如果重新指向一个字符数据, ptr[index]可以改变, 即取决于所指区间的存储区域是否可变;ptr2[index]可变。 字符串常见操作 string 字符串 C++ 标准库中提供了string 类型专门表示字符串 左值与右值 概念左值 编译器为其单独分配了一块存储空间,可以取其地址的,左值一般放置在等号左边右值 数据本身,不能取到其自身地址,右值只能赋值运算符的右边, 右值一般称之为临时对象& 变量名 是一个右值,因为内部取地址到一个临时的内存空间中,但是临时的内存空间无法取地址 指针 内存结构 网络存储(容量大, 访问速度慢)本地磁盘 内存(不能断电)L2 cache(SRAM)L1 cache(SRAM)寄存器 从上往下,访问速度快,但是容量越小,造价成本高 内存 有多个内存单组成, 每个内存单都进行了编号,编号就是内存地址,决定了内存单在内存的位置, C++编译器通过变量名字来访问这些内存位置 数组指针与指针数组 指针数组 T* t[]; // 存放的指针,实际上一个数组, 数组的素是指针 数组指针 T(*t)[]; // 一个指针,指向数组 const pointer 与 pointer to const 规则: 看左侧符号,左侧没有看右侧符号 二级指针 野指针 NULL 指针 特殊指针变量,表示不指向任何东西初始化时与释放时,可使用访问指针时,可先判断是否为NULLC 语言中 #define NULL ((void*)0)C++ 中 #define NULL 0C++11 中使用 nullptr 代替(void*)0, NULL 则只表示0 指针的基本运算 无论是char*, int* , 其实指针占用4字节,16进制的整型数 存储 存储区域划分 全局初始化区,全局未初始化区(BSS),全局(静态)初始化区(静态变量)代码区堆栈常量区 全局未初始化区,其实内部变量都是0,只做标记,不涉及存储
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/57617.html