C++基础知识总结(持续更新)
0.写在前面
这篇文章主要是在刷c++版本leetcode中,遇到的各种小知识点。随时刷题,随时学习,随时总结。
1.数组问题
1.1 一维数组
- (1)声明数组(需要指定元素的类型和元素的数量):type arrayName [ arraySize ];、
- (2)初始化数组(使用大括号):double a[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
- 如果没有规定数组大小:double a[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
- (3)某个元素赋值(从0开始):a[0]=50.0;
- (4)访问数组元素(数组名称+索引):double num=a[3];//将第四个元素赋值给num
- (5)使用sizeof求数组长度(用 sizeof 可以获得数据类型或变量在内存中所占的字节数):sizeof(a)/sizeof(a[0])
1.2 多维数组
- (1)数组声明:type name[size1][size2]...[sizeN]; 二维数组:type arrayName [ x ][ y ];
- (2)初始化二维数组(可以通过在括号内为每行指定值来进行初始化):
- (3)访问二维数组元素(通过使用下标(即数组的行索引和列索引)来访问的):int val = a[2][3];//第 3 行第 4 个元素
1.3 指向数组的指针
- (1)数组名是指向数组中第一个元素的常量指针,在 double balance[50]; 中,balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。因此,下面的程序片段把 p 赋值为 balance 的第一个元素的地址:
- (2)使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式。
- (3)一旦您把第一个元素的地址存储在 p 中,您就可以使用 *p、*(p+1)、*(p+2) 等来访问数组元素。
1.4 传递数组给函数
C++ 中您可以通过指定不带索引的数组名来传递一个指向数组的指针。C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。就函数而言,数组的长度是无关紧要的,因为 C++ 不会对形式参数执行边界检查。
- (1)形式参数是一个指针:
- (2)形式参数是一个已定义大小的数组:
- (3)形式参数是一个未定义大小的数组:
1.5 从函数返回数组
C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下。另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
2.vector问题
3.C++中的注释
C++支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。
- (1)两个斜杠 // 单行注释
- (2)/ * * / 多行注释,这个注释方式是不能嵌套的
- (3)使用预处理形式 #if 0 #endif,在C语言中我们也会用到#if 0,#else,#endif 语句 或 # if 1,#else,#endif 语句