C 将指针从一个函数传递到另一个函数
我正在寻找一种将指针从非主函数传递到另一个函数的方法。值为5的变量x作为指针发送到func1,func1将变量值更改为10,然后func1将相同的变量发送到func2 我希望它看起来像这样: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
#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
这项任务你有什么问题?我完全不知道怎么做。谢谢大家,这比我想象的要容易。