📜  C C++中的指针与示例(1)

📅  最后修改于: 2023-12-03 15:29:41.828000             🧑  作者: Mango

C 和 C++ 中的指针

指针是 C 和 C++ 语言中最重要的概念之一,它在程序设计中起着举足轻重的作用。指针是一种变量,它的值是另一个变量的地址。在使用指针之前,你需要了解指针的基本语法、指针的用途以及各种与指针有关的概念。

指针的基本语法

在 C++ 中,定义一个指针变量需要在类型后面加上一个星号,语法如下所示:

int *ptr;

这里定义了一个 int 类型的指针变量 ptr

在 C 中,定义指针变量的语法类似于 C++,但需要在类型前面加上一个星号,语法如下所示:

int *ptr;

在 C++ 中,可以使用 new 运算符动态地分配内存,返回指向该内存区域的指针,例如:

int *ptr = new int;

在 C 中,需要使用 malloc() 函数来分配内存,该函数的返回值是指向该内存区域的指针,例如:

int *ptr = (int*)malloc(sizeof(int));
指针的用途

指针的主要用途是在程序中动态地分配内存,并将其保存在一个变量中。这种技术被称为堆内存分配。另一个常用的用途是传递参数给函数,在函数中直接操作指针,而不是复制整个数据结构。指针也可以用于实现复杂的数据结构,例如链表、树和图。

下面是一个简单的例子,展示了如何使用指针:

int main() {
    int var = 42;        // 定义一个整型变量
    int *ptr = &var;    // 定义一个指向 var 的指针
    
    cout << "变量 var 的值:" << var << endl;
    cout << "指针 ptr 的值:" << ptr << endl;
    cout << "指针指向的变量的值:" << *ptr << endl;
    
    return 0;
}

上面的代码定义了一个 int 类型的变量 var 和一个指向 var 的指针 ptr。在输出中使用了 * 操作符,这表示取出指针所指向的变量的值。输出结果应该类似于:

变量 var 的值:42
指针 ptr 的值:0x7fff5fbff870
指针指向的变量的值:42
指针的高级概念

指针的高级概念包括大小和类型的概念、指针的数组、二级指针以及指针和函数。这里只简要地介绍这些概念。

  • 大小和类型的概念:指针的类型决定了指针所能指向的变量的类型。指针的大小依赖于操作系统和编译器的位数,默认情况下,指针的大小为 8 字节。

  • 指针的数组:指针数组是一种数组,其中的每个元素是一个指针,数组中的每个元素可以指向不同的变量或者相同的变量的不同部分。

  • 二级指针:指向指针的指针被称为二级指针。它可以被看作是一个指针数组。

  • 指针和函数:指向函数的指针可以作为参数传递给其他函数。该技术可以用于实现回调函数。

总结

指针是 C 和 C++ 语言中最重要的概念之一,你需要学会基本语法、指针的用途以及各种与指针有关的概念,包括大小和类型的概念、指针的数组、二级指针以及指针和函数。熟练掌握指针可以极大地提高程序员的编程能力。