gpt4 book ai didi

使用 *param 和 ¶m 调用 C 函数

转载 作者:行者123 更新时间:2023-12-01 15:07:25 29 4
gpt4 key购买 nike

我见过处理 *param1 和 &param2 的 C 函数调用

   func1(*param1);

func2(&param2);

我知道 * 和 & 必须与指针相关。那么这两种不同的方式有什么用呢?各有什么优势?

最佳答案

func1(*param1);

在这种情况下,您传递的是指针 param1 指向函数 func1 的地址的内容。

func2(&param2);

在这种情况下,您将 param2 的地址传递给函数 func2

本质上,第二个创建一个新指针(即“看那边!”),第一个告诉您指针指向什么(即“这个盒子里有什么?”)。

为了说明问题,这里有一个几乎没用的例子:

int x = 1234; /* an example value */
int *y = &x; /* The pointer y now points at x (or the memory location in which x resides). */
int z = *y; /* z is now = 1234 - it looked at what y was pointing at and took that value. */
int w = *(&x); /* w is now = 1234 - I created a temporary pointer and then immediately dereferenced it. */

另外,注意 int *y 指针定义:星号在变量定义时有不同的含义。它用于定义指针而不是取消引用指针。诚然,对于新手来说有点困惑......

关于使用 *param 和 &param 调用 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863771/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com