C++学习笔记:仅记录一些琐碎的小知识点
C++primer阅读笔记
第三章 字符串、向量和数组
3.3 标准库类型vector
- 列表初始化vector时,必须使用花括号
vector v1{"a","an","the"};
- 例如 short a = 32768,即超过short的范围时,a的值会显示错误(例如):
- float a = 3.14f, float一般后面加f,否则一般默认的是double类型:
- 无论是float类型还是double类型,一般都默认值显示6位显示数据,可以通过一些配置使显示的位数变多。
- 字符型变量并不是把字符本身放到内存存储,而是将对应的ASCII码放入存储单元,若(int)c c为字符,则显示c的ascii码值
- /t 有水平制表的效果,可以整齐的输出\t后面的内容:
- 使用C++风格创建字符串时,记得引用头文件:
include int main{ string stc = "hello,world";}
7.两个整数相除,结果仍是整数;两个小数相除,则结果可以是小数;两个小数是不可以做取模运算的。
- 三目运算符: 表达式1 ” />
- 一维数组arr[10],则sizeof(arr) 可以统计该数组再内存中的长度,若直接:
cout << (int)arr <<endl;
则可以打印数组的首地址的10进制形式。 - 指针的数据类型:在32位下占用4个字节,在64位下占用8个字节,不管是什么数据类型。
- 空指针用于给指针变量初始化,空指针是不可以进行访问的(因为空指针是指向编号为0的空间,而0-255是系统占用内存,不能访问)。
int * p = NULL;
野指针是指指针变量指向非法的内存空间,例如:int * p = (int * )0x1100;
- 常量指针:
const int * p=&a;
特点为,指针的指向可以修改,但是指针指向的值不可以改,即*p=20错误,p=&b可以。 - 指针常量:
int * const p =&a
;特点为指针的指向可以改,指针指向的值不可以改,即*p=20可以,p=&b错误。 - const即修饰指针又修饰常量:
const int * const p=&a;
此时指针的指向和值都不可以改,即*p=20不可以,p=&b也不可以 - 将函数中的形参改为指针(可以改为常数形式),可以减小内存空间的使用,而且不会复制新的副本出来
- 引用可以做函数的左值
- 类内属性的命名规范:m_Age m_表示的是member
- 空指针调用成员函数,加入if判断语句可以提高代码健壮性
- 空类占一个内存。
疑问
- 疑问:为啥C++给函数传入数组后,函数内部对数组操作,会影响数组的值?