C/C++填坑笔记——指针和引用

C/C++还是大一学的,两年多过去了忘了好多,坑一大堆

目录

指针

NULL空指针

指针与数组

传递指针给函数

从函数返回指针

引用

引用和指针

把引用作为返回值


指针

NULL空指针

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

NULL 指针是一个定义在标准库中的值为零的常量。

内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。

如果所有未使用的指针都被赋予空值,同时避免使用空指针,就可以防止误用一个未初始化的指针。很多时候,未初始化的变量存有一些垃圾值,导致程序难以调试。

指针与数组

指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。

传递指针给函数

要在函数内改变这个值的时候,就用指针传递给函数,或者定义全局变量。当然全局变量用多了不好。

从函数返回指针

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

函数指针是一种特殊的指针,指向函数的入口

C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。

引用

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

引用和指针

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

把引用作为返回值

通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。

当函数返回一个引用时,则返回一个指向返回值的隐式指针。

当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。

用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。

发布了287 篇原创文章 · 获赞 297 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_41895747/article/details/104154409