如何在C ++中传递带有'&'符号的参数

米布拉

我对以下函数的理解是它要求一个整数变量的地址。

void MyFunction(int & myParameter)

但是例如在我的代码中,我有:

int myVar;
myFunction(&myVar)

我收到一个编译器错误消息:没有从'int *'到'const int&'的已知转换。

当我传递不带“&”的“ myVar”时,编译器很高兴。我有点困惑,这是怎么回事。在这种情况下,指针符号“ *”和地址符号“&”又有什么区别?我什么时候应该使用?c和c ++在使用'&'时有区别吗?提前致谢。

gluk47

只需致电myFunction (myVar)然后,编译器将通过引用传递您的变量,这意味着,如果您在函数中更改该变量,则该变量也将在函数外部更改。

至于*之间的区别&如果您有某种类型的变量(将其设为int),并且想要获取其指针,则可以使用运算符来应用获取地址&

int i;
int* pointer_to_i = &i;

如果您的函数采用int*,则需要传递&ipointer_to_i(它们显然是同一件事)。如果您的函数使用intint&,那么您应该通过i

以值作为参数的函数(如void f(int);)处理其参数的副本。该函数对该参数所做的所有更改在外部都不可见。如果函数通过指针或引用获取其自变量,则对该自变量进行的所有更改都将在外部可见。

当获得指针作为参数时,您需要:

  1. 检查它是否不在NULLC或nullptrC ++中
  2. 取消引用它。也就是说,您应该编写*i = 0将零放入所指向的内存中i

除此之外,通过指针(如void f(int*){…})或通过引用(如void f(int&){…}传递实际上仅在语法上有所不同,并且具有相同的含义。

指针不能指向任何地方,可以指向另一个值。相反,引用始终指向某些内容,并且始终指向相同的存储位置。

简而言之。但是您应该真正阅读一些不错的C ++书,其中有许多带有引用或指针的棘手案例。

最后是一条记忆规则。

int i; //< that's a plain number
int* pi = &i; //< that's a pointer to int
int (*pi_2) = &i; //< the same pointer to int
int j = *pi_2; //< here *pi_2 is again an int just as above

就是说,这个指示指针的星号可以放在变量之前,从而从其类型“剥离”一个间接级别。形式上的解释并不十分正确,但有时可以方便地理解会发生什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在nohup中传递带有空格的参数?

来自分类Dev

如何在python中传递带有参数的函数?

来自分类Dev

如何在C#中合并带有传递参数的代码?

来自分类Dev

在C ++ 11中传递带有未指定参数的函数?

来自分类Dev

如何在Java 8中传递带有参数作为参数的Lambda表达式?

来自分类Dev

Swift-如何在函数的参数中传递带有参数的函数?

来自分类Dev

Swift-如何在函数的参数中传递带有参数的函数?

来自分类Dev

如何让perl正确传递带有多个参数和复杂文件路径(空格和符号)的命令行参数?

来自分类Dev

如何在RedirectToAction中传递带有点的查询字符串参数名称

来自分类Dev

如何在Flask的GET请求中传递带有参数的URL?

来自分类Dev

如何在PHP中传递带有ob_start参数的回调函数?

来自分类Dev

如何在jQuery中传递带有参数的命名函数而不是匿名函数?

来自分类Dev

如何在Android自定义数据绑定中传递带有参数的函数

来自分类Dev

如何在Excel中传递带有参数的字符串以进行评估?

来自分类Dev

如何在jthread中传递带有参数和stop_condition的函数?

来自分类Dev

如何在带有单引号的js函数中传递多个参数

来自分类Dev

Shell脚本如何在变量中传递带有空格的参数

来自分类Dev

如何在Android自定义数据绑定中传递带有参数的函数

来自分类Dev

如何在带有传递参数的pycharm中运行python程序?

来自分类Dev

如何在带有多个参数的sql存储过程中传递数据表

来自分类Dev

在汇编中调用符号时如何传递函数参数?

来自分类Dev

如何在sympy中编写以符号向量为参数的函数?

来自分类Dev

Isabelle:如何在 mixfix 符号中定位固定参数?

来自分类Dev

如何将带有管道符号的多个参数传递到bash脚本的case语句中

来自分类Dev

如何避免ajax参数中的数组符号

来自分类Dev

如何解构箭头符号中的参数

来自分类Dev

如何停止带有参数的按钮传递?

来自分类Dev

在Scala中,如何传递带有多个参数列表作为参数的函数?

来自分类Dev

如何或可以将带有参数作为参数的函数传递给lua中的函数?

Related 相关文章

  1. 1

    如何在nohup中传递带有空格的参数?

  2. 2

    如何在python中传递带有参数的函数?

  3. 3

    如何在C#中合并带有传递参数的代码?

  4. 4

    在C ++ 11中传递带有未指定参数的函数?

  5. 5

    如何在Java 8中传递带有参数作为参数的Lambda表达式?

  6. 6

    Swift-如何在函数的参数中传递带有参数的函数?

  7. 7

    Swift-如何在函数的参数中传递带有参数的函数?

  8. 8

    如何让perl正确传递带有多个参数和复杂文件路径(空格和符号)的命令行参数?

  9. 9

    如何在RedirectToAction中传递带有点的查询字符串参数名称

  10. 10

    如何在Flask的GET请求中传递带有参数的URL?

  11. 11

    如何在PHP中传递带有ob_start参数的回调函数?

  12. 12

    如何在jQuery中传递带有参数的命名函数而不是匿名函数?

  13. 13

    如何在Android自定义数据绑定中传递带有参数的函数

  14. 14

    如何在Excel中传递带有参数的字符串以进行评估?

  15. 15

    如何在jthread中传递带有参数和stop_condition的函数?

  16. 16

    如何在带有单引号的js函数中传递多个参数

  17. 17

    Shell脚本如何在变量中传递带有空格的参数

  18. 18

    如何在Android自定义数据绑定中传递带有参数的函数

  19. 19

    如何在带有传递参数的pycharm中运行python程序?

  20. 20

    如何在带有多个参数的sql存储过程中传递数据表

  21. 21

    在汇编中调用符号时如何传递函数参数?

  22. 22

    如何在sympy中编写以符号向量为参数的函数?

  23. 23

    Isabelle:如何在 mixfix 符号中定位固定参数?

  24. 24

    如何将带有管道符号的多个参数传递到bash脚本的case语句中

  25. 25

    如何避免ajax参数中的数组符号

  26. 26

    如何解构箭头符号中的参数

  27. 27

    如何停止带有参数的按钮传递?

  28. 28

    在Scala中,如何传递带有多个参数列表作为参数的函数?

  29. 29

    如何或可以将带有参数作为参数的函数传递给lua中的函数?

热门标签

归档