
是一样的,pi=&i只是在定义的时候把
i
的地址给
pi指针(px指向x的地址)。“为什么右边同样是地址,左边不相等呢?”这段不知道什么意思?
它们的区别是
左边是利用返回值来读函数,而右边是利用函数调用,
因为只有只有指针才能修改地址的值,要传个地址给它,调用函数中的max要取
,获取它的值。
/
本程序介绍了三中通过子函数给指针赋值的方法,
比较有典型意义。
/
#include <stdioh>
#include <stdlibh>
//通过返回值传递指针的值
int func1()
{
//动态申请的内存,在子函数结束后才能依然存在而不被系统自动释放
//指针返回去才有意义
int data=(int )malloc(sizeof(int));
data=100;
return data;
}
//通过指向指针的指针传递指针的值
void func2(int q)
{
//动态申请的内存,在子函数结束后才能依然存在而不被系统自动释放
//指针返回去才有意义
int data=(int)malloc(sizeof(int));
data=200;
q=data;
}
//通过指针的引用传递指针的值
void func2(int & q)
{
//动态申请的内存,在子函数结束后才能依然存在而不被系统自动释放
//指针返回去才有意义
int data=(int)malloc(sizeof(int));
data=300;
q=data;
}
main()
{
int p;
p=func1();
printf("%d\n",p);
func2(&p); //注意是取指针的地址,你的第二提问用这种方法就能解决
printf("%d\n",p);
func2(p);
printf("%d\n",p);
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)