c - 指针作为 C 中的函数参数

标签 c pointers variables scope

我无法让它正常工作。

我在 main 中启动了变量,我想将其传递给其他函数并进行了更改。我知道唯一可以做到这一点的方法是使用指针或在主函数之外声明变量。 我更愿意使用指针

它是怎么做到的?

例如

int main(){
    int variable1 = 5;
    add(&variable1, 6);
    printf("%d", variable1);

    return 0;
}

int add(int *variable1, int addValue){
    variable1 += addValue;

    return 0;
}

我想打印 11 但我不知道这些指针是如何通过其他函数工作的

最佳答案

你只需要取消引用你的指针:

void add(int *variable1, int addValue)
{
    *variable1 += addValue;
}

在您的函数调用中,您传入“&variable1”,这意味着“指向此变量的指针”。本质上,它在您的主函数中传入了 variable1 的确切内存位置。当你想改变它时,你需要通过放置星号“*variable1 += 6”来取消引用。取消引用表示“现在修改存储在该指针处的 int”。

当您在函数 def 中使用星号时,表示“这将是一个指向 int 的指针”。星号用于表示两种不同的事物。希望这对您有所帮助!

哦,还要将显式类型添加到函数调用中:

void add(int *variable1, int addValue)

关于c - 指针作为 C 中的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563061/

相关文章:

C - 在非托管 DLL 中导入和访问函数

java - 检测 Web 应用程序和桌面应用程序中的漏洞

multithreading - 如何将线程函数的地址作为回调传递给winapi?

c - 菜单中的字母选项在 C 程序中声明为未声明

javascript - JS相当于Ruby的return if

c - 如何将随机散列减少为 bool 值

c++ - 如何在 c 中的 opencv 2.3 编码中向序列添加元素

c - 分配给整数指针会导致崩溃

在 C 中仅将文件的一部分复制到新文件

c++ - 如何跨多个函数使用变量?