当前位置:实例文章 » 其他实例» [文章]C++教程(八)——指针

C++教程(八)——指针

发布人:shili8 发布时间:2025-01-17 00:41 阅读次数:0

**C++ 教程 (八) —— 指针**

在 C++ 中,指针是非常重要的概念,它们允许你操作内存中的数据。指针是一种特殊类型的变量,它保存的是一个内存地址,而不是实际的值。在本教程中,我们将深入探讨指针的基本概念、使用方法和一些常见的应用。

###什么是指针?

在 C++ 中,指针是一个变量,它保存的是另一个变量或数据结构的内存地址。例如,如果你有一个整型变量 `x`,它占据了内存中的某个位置,你可以使用一个指针 `p` 来保存这个内存地址。

cppint x =10; // x 占据了内存中的某个位置int* p = &x; // p保存了 x 的内存地址


在上面的例子中,`&x` 表示取 `x` 的内存地址,而 `p` 就是保存这个内存地址的指针。

### 指针的基本操作#### 赋值和比较你可以使用赋值运算符 (`=`) 将一个指针赋给另一个指针。例如:

cppint x =10;
int* p1 = &x;
int* p2 = p1; // p2 现在保存了 x 的内存地址


你也可以使用比较运算符 (`==` 和 `!=`) 来比较两个指针是否相等。例如:

cppint x =10;
int y =20;
int* p1 = &x;
int* p2 = &y;

if (p1 == p2) {
 std::cout << "p1 和 p2 相等" << std::endl;
} else {
 std::cout << "p1 和 p2 不相等" << std::endl;
}


#### 指针的运算你可以使用加法和减法运算符来操作指针。例如:

cppint x =10;
int* p = &x;

*p =20; // 将20 赋值给 xstd::cout << "x 的值是:" << *p << std::endl;

++(*p); // 将 x 的值加一std::cout << "x 的值是:" << *p << std::endl;


#### 指针的解引用你可以使用解引用运算符 (`*`) 来获取指针所指向的变量的值。例如:

cppint x =10;
int* p = &x;

std::cout << "x 的值是:" << *p << std::endl;


### 指针和数组在 C++ 中,数组也是一个非常重要的概念,它们允许你存储一组相同类型的数据。指针和数组之间有着密切的关系。

#### 数组名为指针在 C++ 中,数组名实际上是一个指向数组首元素的指针。例如:

cppint arr[5] = {1,2,3,4,5};
std::cout << "arr 的值是:" << *arr << std::endl;


在上面的例子中,`arr` 是一个整型数组,它实际上是一个指向数组首元素的指针。

#### 指针和数组索引你可以使用指针来访问数组中的元素。例如:

cppint arr[5] = {1,2,3,4,5};
int* p = arr;

std::cout << "arr 的值是:" << *p << std::endl;
++p;
std::cout << "arr 的值是:" << *p << std::endl;


在上面的例子中,`p` 是一个指向数组首元素的指针,我们使用 `++p` 来访问数组中的下一个元素。

### 指针和函数在 C++ 中,函数也是一个非常重要的概念,它们允许你定义一段代码块来完成某个任务。指针和函数之间有着密切的关系。

#### 函数名为指针在 C++ 中,函数名实际上是一个指向函数体的指针。例如:

cppvoid myFunction() {
 std::cout << "Hello, World!" << std::endl;
}

int main() {
 void (*p)() = myFunction; // p 是一个指向 myFunction 的指针 p(); // 调用函数体 return0;
}


在上面的例子中,`myFunction` 是一个函数,它实际上是一个指向函数体的指针。

#### 指针和函数参数你可以使用指针来传递函数参数。例如:

cppvoid myFunction(int* p) {
 std::cout << "p 的值是:" << *p << std::endl;
}

int main() {
 int x =10;
 int* px = &x; // px 是一个指向 x 的指针 myFunction(px); // 调用函数体,传递 px 作为参数 return0;
}


在上面的例子中,我们使用指针 `px` 来传递变量 `x` 作为函数参数。

### 总结在本教程中,我们深入探讨了 C++ 中的指针概念、基本操作和一些常见的应用。我们学习了如何定义指针、赋值和比较指针、使用加法和减法运算符来操作指针、解引用指针等。我们还学习了如何使用指针来访问数组中的元素和函数体,以及如何传递指针作为函数参数。

### 参考资料* 《C++ Primer》第5 章:指针* 《Effective C++》第2 章:指针* 《Modern C++ Design》第3 章:指针

其他信息

其他资源

Top