C 将指针从一个函数传递到另一个函数

C 将指针从一个函数传递到另一个函数,c,function,pointers,C,Function,Pointers,我正在寻找一种将指针从非主函数传递到另一个函数的方法。值为5的变量x作为指针发送到func1,func1将变量值更改为10,然后func1将相同的变量发送到func2 我希望它看起来像这样: #include <stdio.h> void func1(int *px); void func2(); int main(void) { int x=5; printf("x in main %d\n", x); func1(&x); r

我正在寻找一种将指针从非主函数传递到另一个函数的方法。值为5的变量x作为指针发送到func1,func1将变量值更改为10,然后func1将相同的变量发送到func2

我希望它看起来像这样:

#include <stdio.h>

void func1(int *px);
void func2();

int main(void)

{   
    int x=5;
    printf("x in main %d\n", x);
    func1(&x);

    return 0;
}

void func1(int *px)
{
    *px = 10;
    printf("x i funk 1 %d\n", *px);
    funk2(); // send to this function a pointer to x, which in this function(func1) is pointed by *px
    funk3();
}

void func2()
{
    //*px=15 // here I want to change value of x 
}
#包括
无效函数1(int*px);
void func2();
内部主(空)
{   
int x=5;
printf(“主%d中的x\n”,x);
功能1&x;
返回0;
}
无效函数1(int*px)
{
*px=10;
printf(“x i funk 1%d\n”,*px);
funk2();//向该函数发送指向x的指针,该指针在该函数(func1)中由*px指向
funk3();
}
void func2()
{
//*px=15//这里我想改变x的值
}

我完全不知道该怎么做

使用与将指向
x
的指针从
main
传递到
func1
时使用的逻辑完全相同

在这种情况下,
func2
还应接受指向
int
的指针,
func1
应传递从
main
获取的指向
func2
的指针:

#include <stdio.h>

void func1(int *px);
void func2(int *px);

int main(void)

{   
    int x=5;
    printf("x in main %d\n", x);
    func1(&x);

    // x will be 15 here

    return 0;
}

void func1(int *px)
{
    *px = 10;
    printf("x i funk 1 %d\n", *px);
    funk2(px); // send to this function a pointer to x, which in this function(func1) is pointed by *px
    //funk3(); // this function was not defined anywhere
}

void func2(int *px)
{
    *px=15;
}
#包括
无效函数1(int*px);
无效函数2(int*px);
内部主(空)
{   
int x=5;
printf(“主%d中的x\n”,x);
功能1&x;
//x在这里是15岁
返回0;
}
无效函数1(int*px)
{
*px=10;
printf(“x i funk 1%d\n”,*px);
funk2(px);//向该函数发送指向x的指针,该指针在该函数(func1)中由*px指向
//funk3();//未在任何位置定义此函数
}
无效函数2(int*px)
{
*px=15;
}

只需将
func1()
中的参数作为指针传递给
func2()
func1()
中的
px
func2()
中的
py
将指向相同的内存位置,即
x
的地址

int main(void)

{
    int x = 5;
    printf("x in main %d\n", x);
    func1(&x);

    printf("x now %d\n", x);

    return 0;
}

void func2(int *py)
{
    *py = 15; // here I want to change value of x 
}



void func1(int *px)
{
    *px = 10;
    printf("x in funk 1 %d\n", *px);
    func2(px); // send to this function a pointer to x, which in this function(func1) is pointed by *px

}
输出:

x in main 5
x in funk 1 10
x now 15

这项任务你有什么问题?我完全不知道怎么做。谢谢大家,这比我想象的要容易。