C++ Day1
- short/int = WORD(2 bytes)
- long = DWORD(4 bytes)
- climits.h 中有INT_MAX等常量定义
- #define INT_MAX 32767:文本替换所有INT_MAX←32767
但常用int const INT_MAX=32767; - 在c++内,定义必须进行初始化
- unsigned int/ unsigned 关键字:取消符号(0-65535)
- ‘’ char, “”string
- bool: 非零true,零false
- 运算符重载 9/5,9L/5L, 9.0/5.0, 9.0f/5.0f
第四章
10. int months[12] = {1,2,3,4,5,6,7,8,9,10,11,12} 定义固定数组,动态数组用new。大括号初始化
11. len(months) (py) → sizeof(months) (c++)
12. 数组初始化: int months[12] = {}
13. C风格字符串 char fish[] = “Bubbles” ,双引号自动添加\0
14. len(py) → strlen(c++)
15. string类:
#include <string>
也在std里
len(string) → string.size() (c++)
16. 传统C风格字符串操作:
strcpy(r1,r2) r1 = r2 strncat()
strcat(r1,r2) r1 = r1 + r2 strncpy()
17. 友元函数
18. c++11 原始字符串 raw
e.g : cout << R"(this is “HelloWorld!\n”)"
19. 结构
e.g
struct inflatable{
char name[20];
float volume;
double price;
} a,b = {}
a.price = 5.0
20. 结构的初始化:可以{“name”,5.0,5.0},也可以直接{}
21. 共用体 union,union xxx {}; 略
22. 枚举 enum
e.g
enum bits {
one = 1,
two = 2,
four = 4,
eight = 8,
nine} myflag;
myflag = four;
myflag = bits(5);
23. 指针
定义指针 int *value = new int;
使用指针: 指针的值 *value, 其他某变量的地址 &value2
指针赋值 int *address; address = (int *) 0x401000h (需要有一步强制类型转换)
delete value; 释放内存
24. 动态数组
int *psome = new int [10];
delete [] psome;
访问:psome[0], psome[1], …
对动态数组指针的地址+1时,会直接到数字原来指针的下一项(即原来psome为&psome[0];psome++后指向&psome[1],而非&psome[0]+1)
25. 字符串数组指针
(1) 数组名会被解释为数组第一个元素的地址
(2) cout打印不出来地址的时候,试试(int)&addr。cout本身可以传入地址变量
(3) *char bird = “Hello”;
char strtest[] = “TEST”;
char strtestaddr = strtest; // 第一个元素的地址
const char test = “Hello”; //const 指针专用
26. 动态结构
struct inflatable{
char name[20];
float volume;
double price;
} a,b = {}
27. 自动存储、静态存储、动态存储
自动存储:add esp,04; 存储在栈中
静态存储:保存在固定内存中,整个程序都有
动态存储:保存在堆中(申请/释放)
28. vector/array模板类
#include <vector>
vector<int> vi;
vector<double> vd(n); //n可以是变量
使用: vi[1];
#include <array>
array<int,5> ai;
array<double,4> ad = {1.0,2.0,3.0};
*不能用变量
1654

被折叠的 条评论
为什么被折叠?



