C 在另一个函数中具有指针参数的函数?

C 在另一个函数中具有指针参数的函数?,c,function,pointers,C,Function,Pointers,我对C(以及一般的编码)非常陌生,所以如果这是一个愚蠢的问题,我很抱歉。我有一个函数,它接受一个整数指针作为它的参数之一,我试图从另一个函数内部调用它 例如: int a; void function1(int* a) { /* Code */ } void function2(int* a) { function1(&a); } 我不知道如何调用函数,或者这是否是正确的方法。基本上,我需要函数1能够在函数2中调用“a”时更改main中“a”的值。谢谢:)函数2的参数“a”已

我对C(以及一般的编码)非常陌生,所以如果这是一个愚蠢的问题,我很抱歉。我有一个函数,它接受一个整数指针作为它的参数之一,我试图从另一个函数内部调用它

例如:

int a;

void function1(int* a)
{
/* Code */
}

void function2(int* a)
{
   function1(&a);
}

我不知道如何调用函数,或者这是否是正确的方法。基本上,我需要函数1能够在函数2中调用“a”时更改main中“a”的值。谢谢:)

函数2的参数“a”已经是一个指针,因此您应该在函数2中向函数1传递“a”,而不是“&a”。现在要做的是传递存储指针的元素的地址,而不是指针本身。但是,在main()代码中调用function2时,应该将“&a”传递给它。

看起来不错。您可以尝试一下,而不是询问。您需要意识到
function1
隐藏了
a
的全局范围版本,而只会看到您传入的指针。因此,如果希望
function1
修改全局
a
,则需要将其传递给
&a
,就像在
function2
中一样。不过,这个例子似乎有点做作。现在还不清楚你是否真的在问你认为你在问的问题。是的,我很抱歉这个问题不清楚,当我不知道该怎么称呼的时候,这很难。哈哈。我编辑了函数2的参数,以显示我现在拥有的内容,并且它给了我错误“从不兼容的指针类型传递参数”
function1(&a)-->
功能1(a)@IsmailBadawi:这是错误的。通过尝试和错误学习C是非常糟糕的建议。感谢您的解释:)