📜  C++中的指针和引用

📅  最后修改于: 2021-05-30 15:43:14             🧑  作者: Mango

  1. C++中的指针指针是地址的符号表示。它们使程序能够模拟按引用调用以及创建和操纵动态数据结构。它在C / C++中的一般声明具有以下格式:
    句法:
    datatype *var_name; 
    

    例子:

    // ptr can point to an address
    // which holds int data
    int *ptr;   
    
  2. 有关C++中的Pointers的更多信息:本文将提供有关Pointers的进一步信息,以了解它如何工作并解释其数学背景。指针存储变量的地址或存储位置。
    // General syntax
    datatype *var_name; 
    
    // An example pointer "ptr" that holds
    // address of an integer variable or holds
    // address of a memory whose value(s) can
    // be accessed as integer values through "ptr"
    int *ptr;
  3. 指针在C / C++中的应用:指针具有各种应用程序,例如:
    • 通过引用传递参数:通过引用传递有两个目的
    • 对于访问数组元素:编译器内部使用指针访问数组元素。
    • 要返回多个值:例如,在返回平方和数字的平方根时。
    • 动态内存分配:我们可以使用指针动态分配内存。动态分配内存的优点是,直到我们显式删除它,才将其删除。
    • 实现数据结构。
    • 在内存地址有用的情况下进行系统级编程。
  4. C / C++中指针的功能和使用:指针共享一些重要的功能,例如节省内存空间,用于动态分配内存,用于文件处理等。指针存储变量的地址或存储位置。
    句法:
    datatype *var_name; 

    示例:指针“ ptr”保存一个整数变量的地址或保存其地址可以通过“ ptr”作为整数值访问的内存的地址

    int *ptr;
  5. C++中的“ this”指针“ this”指针作为隐藏参数传递给所有非静态成员函数调用,并且可用作所有非静态函数体内的局部变量。 “ this”指针在静态成员函数中不可用,因为可以在没有任何对象(带有类名)的情况下调用静态成员函数。即使每个函数只有一个成员被多个对象使用,编译器也会提供隐式指针以及函数名作为“ this”。
    宣言:
    this->x = x; 
  6. C++中的引用:将变量声明为引用时,它将成为现有变量的替代名称。通过在声明中添加“&”,可以将变量声明为引用。有3种方式将C++参数传递给函数:
    • 按价值致电
    • 带有指针参数的按引用调用
    • 通过引用调用带有引用参数
  7. C++中的指针与引用:本文为指针与引用之间的差异奠定了适当的基础。无论引用和指针可以用来更改另一个函数中一个函数的局部变量。当作为参数传递给函数或从函数返回时,它们都还可以用于保存大对象的副本,以提高效率。
    尽管有上述相似之处,但引用和指针之间仍存在以下差异。
    • 可以将指针声明为void,但引用永远不能为void
      例子:
      int a = 10;
      void* aa = &a;. //it is valid
      void &ar = a; // it is not valid
    • 引用不如指针强大
    • 创建引用后,以后就不能再引用另一个对象了。它不能被重新安置。这通常是通过指针完成的。
    • 引用不能为NULL。指针通常被设置为NULL,以指示它们没有指向任何有效的对象。
    • 引用必须在声明时进行初始化。指针没有这种限制
  8. 通过指针传递Vs在C++中通过引用传递:在C++中,我们可以通过指针或通过引用将参数传递给函数。在这两种情况下,我们得到的结果都是相同的。那么应该首选什么,为什么呢?
  9. 在C++中传递对指针的引用:在本文中,让我们比较某些情况下“指向指针的指针”与“指向指针的引用”的用法。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”