C++指针传递的作用是什么

其他教程   发布日期:2025年03月15日   浏览次数:129

这篇文章主要介绍了C++指针传递的作用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++指针传递的作用是什么文章都会有所收获,下面我们一起来看看吧。

具体如下

  1. void pointerTest(int num) {
  2. num = 20;
  3. }
  4. int main() {
  5. int num = 10;
  6. pointerTest(num);
  7. LOGI("%d", num) // 打印出来的结果是 10
  8. return 0;
  9. }

在这个例子中,main 函数定义了整型 num,值为 10,然后以参数传递给 pointerTest 函数,在 pointerTest 函数中,直接对传进来的 num 赋值为 20。最终,打印出来的结果还是 10。

为啥呢?熟悉 java 的人很快会反应过来,因为 int 是基本数据类型,要用引用数据类型。

  1. public static void pointerTest(String str) {
  2. str = "wk";
  3. }
  4. public static void main(String[] args) {
  5. String str = "test";
  6. pointerTest(str);
  7. System.out.println(str); // 打印出来的结果是 test
  8. }

String 是引用数据类型了吧,但是打印出来的结果仍没被改变

其实对于引用数据类型参数而言,只能对这个对象进行相应的操作(get/set),并不能直接替换整个对象

C/C++ 中得意于指针,能够修改函数外的变量值

  1. void pointerTest(int *num) {
  2. *num = 20;
  3. }
  4. int main() {
  5. int num = 10;
  6. pointerTest(&num);
  7. LOGI("%d", num) // 打印出来的结果是 20
  8. return 0;
  9. }

字符串也是一样的:(C中的字符串类型为 char*)

  1. void pointerTest(char **str) {
  2. *str = "wk";
  3. }
  4. int main() {
  5. char *str = "test";
  6. pointerTest(&str);
  7. LOGI("%s", str) // 打印出来的结果是 wk
  8. return 0;
  9. }

在 pointerTest 函数中,对传进来的指针进行取值(*)对外部参数进行修改。按照这个思路反推,那么我们在传递内存地址给函数 其实是 提供函数修改参数的能力

以上就是C++指针传递的作用是什么的详细内容,更多关于C++指针传递的作用是什么的资料请关注九品源码其它相关文章!