C++八股学习心得.3

2024-01-07 17:20:44

1.C++ 数组

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。一个二维数组可以被认为是一个带有 x 行和 y 列的表格数组中的每个元素是使用形式为 a[ i , j ] 的元素名称来标识的,其中 a 是数组名称,i 和 j 是唯一标识 a 中每个元素的下标。

数组名是一个指向数组中第一个元素的常量指针

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

如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数1、形式参数是一个指针2、形式参数是一个已定义大小的数组3、形式参数是一个未定义大小的数组

就函数而言,数组的长度是无关紧要的,因为 C++ 不会对形式参数执行边界检查

C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为?static?变量

2.?C++ 字符串

C++ 提供了以下两种类型的字符串表示形式:

C 风格字符串

C++ 引入的 string 类类型

?3.C++ 指针

指针是一个变量其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明

type *var-name

所有指针的值的实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同

使用指针时会频繁进行以下几个操作:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值。这些是通过使用一元运算符?*?来返回位于操作数所指定地址的变量的值。

?4.C++?Null 指针

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为?NULL 值的指针被称为指针

指针是一个用数值表示的地址。数组是一个常量指针

5.C++?指向指针的指针(多级间接寻址)?

指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。

C++ 允许您传递指针给函数只需要简单地声明函数参数为指针类型即可

野指针:当前指针所指的资源释放后,当前指针没有置空(nullptr)

指针悬挂:当前指针所指的资源被另一个指针(这个指针在资源是释放后置空)释放

?6.C++ 引用

引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量

7.C++ 引用 vs 指针

引用很容易与指针混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。
  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。

8.?C++ 日期 & 时间

为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。

time_t?time(time_t *time);

该函数返回系统的当前日历时间,自 1970 年 1 月 1 日以来经过的秒数。如果系统没有时间,则返回 .1。

9.C++?基本的输入输出

C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。

C++ 的 I/O 发生在流中,流是字节序列如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作

预定义的对象?cout?是?ostream?类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout?是与流插入运算符 << 结合使用的

预定义的对象?cin?是?istream?类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin?是与流提取运算符 >> 结合使用的

10.C++ 数据结构

C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型它允许您存储不同类型的数据项

访问结构成员

为了访问结构的成员,我们使用成员访问运算符(.)

结构作为函数参数

您可以把结构作为函数参数传参方式与其他类型的变量或指针类似

指向结构的指针

您可以定义指向结构的指针,方式与定义指向其他类型变量的指针相似

现在,您可以在上述定义的指针变量中存储结构变量的地址。为了查找结构变量的地址,请把 & 运算符放在结构名称的前面

typedef 关键字

一种更简单的定义结构的方式,您可以为创建的类型取一个"别名"

总结:

?数组是一个连续空间下的固定大小相同类型元素的集合,数组名指向第一个元素的指针,不可向函数传入一个完整数组,注意多维数组形式,

c++字符串c语言和c++string串

指针是一个变量,这个值是某个变量的地址,内存位置直接地址,使用之前需要进行声明,无论什么类型代表内存地址的十六位进制数,指针指向变量类型不同指针类型不同,首先定义一个指针变量,地址赋给指针,访问指针变量可用地址的值,*取地址的变量值

指针没有赋值可以使用NULL赋值

指针的指针是指针地址的存放地址,野指针是释放资源后,指针没有为空,指针悬挂当前指针指向的资源被其他指针释放

引用就是一个变量别名,影响实参

引用与指针的区别:不能空引用,必须连接合法内存,引用定义之后不能再定义另一个对象,指针可以,引用创建必须初始化,指针任何时候都可以初始化

时间头文件是ctime文件,time_t是时间戳,自从1970年1月1日得到现在时间

输入输出是cin输入(键盘)cout输出(显示器)

数据结构是可以人为设定的一种数据结构,存储不同类型的数据项,使用.来访问数据成员,数据结构也可以作为参数,数据结构也有指针&取址,typedef定义结构取别名

文章来源:https://blog.csdn.net/weixin_55605689/article/details/135365958
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。