C++ 指针传递的作用小结

 更新时间:2023年04月10日 08:33:17   作者:wk灬丨  
本文主要介绍了C++ 指针传递的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文主要介绍了C++ 指针传递的作用小结,分享给大家,具体如下

void pointerTest(int num) {
    num = 20;
}
 
int main() {
    int num = 10;
    pointerTest(num);
    LOGI("%d", num) // 打印出来的结果是 10
 
    return 0;
}

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

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

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

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

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

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

void pointerTest(int *num) {
    *num = 20;
}
 
int main() {
    int num = 10;
    pointerTest(&num);
    LOGI("%d", num) // 打印出来的结果是 20
 
    return 0;
}

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

void pointerTest(char **str) {
    *str = "wk";
}
 
int main() {
    char *str = "test";
    pointerTest(&str);
    LOGI("%s", str) // 打印出来的结果是 wk
 
    return 0;
}

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

到此这篇关于C++ 指针传递的作用小结的文章就介绍到这了,更多相关C++ 指针传递 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言中对于循环结构优化的一些入门级方法简介

    C语言中对于循环结构优化的一些入门级方法简介

    这篇文章主要介绍了C语言中对于循环结构优化的一些入门级方法,包括算法设计的改进来提高一些并行性等方法,要的朋友可以参考下
    2015-12-12
  • C语言数据结构之二叉树详解

    C语言数据结构之二叉树详解

    二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式。本文将通过示例详细讲解一下二叉树,需要的可以参考一下
    2022-03-03
  • C++实现二分法求连续一元函数根

    C++实现二分法求连续一元函数根

    这篇文章主要为大家详细介绍了C++实现二分法求连续一元函数根,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • C++ 中类(class)和结构体(struct)的区别

    C++ 中类(class)和结构体(struct)的区别

    类和结构体经常被用来定义复杂的数据结构,但两者之间既有区别又能很好地结合使用,本文主要介绍了C++ 中类(class)和结构体(struct)的区别,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • c++递归解数独方法示例

    c++递归解数独方法示例

    这篇文章主要介绍了c++递归解数独方法示例,需要的朋友可以参考下
    2014-03-03
  • C语言实现电子邮件地址验证程序

    C语言实现电子邮件地址验证程序

    这篇文章主要介绍了C语言实现电子邮件地址验证程序,利用的是POSIX正则表达式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • C++中std::ifstream的使用方法介绍

    C++中std::ifstream的使用方法介绍

    这篇文章主要给大家介绍了关于C++中std::ifstream使用方法的相关资料,std::ifstream 是输入文件流类,用于从文件中读取数据,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • C语言编写扫雷小程序

    C语言编写扫雷小程序

    这篇文章主要为大家详细介绍了C语言编写扫雷小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • C++实现通讯录管理系统

    C++实现通讯录管理系统

    这篇文章主要为大家详细介绍了C++实现通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 简易Dota改键程序制作

    简易Dota改键程序制作

    利用全局钩子制作一个个性化的dota游戏改键功能,大家可以参考使用
    2013-11-11

最新评论