【发布时间】:2011-04-26 07:08:37
【问题描述】:
我一直试图在被调用函数中创建一个指针变量,并以某种方式将它指向的值传递给主函数。我写了一些示例程序,但我似乎仍然遗漏了一些东西。挑战是使用指向指针的指针来实现这一点。这是我编写和测试的代码。我认为遗漏了一些明显的东西,你们能指出它吗?谢谢。
int one(int ***ptr)
{
static int *p,**pp,b=10;
p=&b;
pp=&p;
ptr=&pp;
printf("b:%d\tp:%d\tpp:%d\n",b,*p,**pp);
printf("Sub Ptr:%d\n",***ptr);
printf("Address of ***ptr:%d\n",&ptr);
return 32;
}
int main(int argc, char *argv[])
{
static int ***ptr;
int a=200,*b,**c;
b=&a;
c=&b;
ptr=&c;
printf("Main Ptr:%d\n",&ptr);
a=one(ptr);
printf("Main Ptr:%d\n",&ptr);
printf("Main Ptr:%d\n",***ptr);
system("PAUSE");
return 0;
}
我得到 32 的输出,这是函数的返回值。是否可以获得被调用函数中指向的 10 的值。
我也尝试过全局声明,但也可以正常工作。我想维护本地声明,看看它是否可能......
【问题讨论】: