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)初始化二维数组(可以通过在括号内为每行指定值来进行初始化): C++基础知识总结(持续更新)
  • (3)访问二维数组元素(通过使用下标(即数组的行索引和列索引)来访问的):int val = a[2][3];//第 3 行第 4 个元素

1.3 指向数组的指针

  • (1)数组名是指向数组中第一个元素的常量指针,在  double balance[50];   中,balance 是一个指向 &balance[0] 的指针,即数组                 balance 的第一个元素的地址。因此,下面的程序片段把 p 赋值为 balance 的第一个元素的地址:C++基础知识总结(持续更新)
  • (2)使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式。
  • (3)一旦您把第一个元素的地址存储在 p 中,您就可以使用 *p、*(p+1)、*(p+2) 等来访问数组元素。

1.4 传递数组给函数

        C++ 中您可以通过指定不带索引的数组名来传递一个指向数组的指针。C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。就函数而言,数组的长度是无关紧要的,因为 C++ 不会对形式参数执行边界检查。

  • (1)形式参数是一个指针:C++基础知识总结(持续更新)
  • (2)形式参数是一个已定义大小的数组:C++基础知识总结(持续更新)
  • (3)形式参数是一个未定义大小的数组:C++基础知识总结(持续更新)

1.5 从函数返回数组

        C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。

如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下。另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。

C++基础知识总结(持续更新)

2.vector问题

C++中vector知识点总结

3.C++中的注释

        C++支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。

  • (1)两个斜杠   //     单行注释
  • (2)/ *  * /    多行注释,这个注释方式是不能嵌套
  • (3)使用预处理形式    #if 0  #endif,在C语言中我们也会用到#if 0,#else,#endif 语句  或   # if 1,#else,#endif 语句

4.C++中数据类型