C语言中对指针变量的直接和间接引用怎么区别
3个回答
2013-06-27
展开全部
引用相比于于指针各有优点:一、引用变量它不能改变自身所引用的地址空间,而指针变量可以,那么就很可能出现一些因为不小心的修改而导致错误的结果。二、在作为函数参数方面,引用作为参数,你调用的时候不需要对变量取地址值,这样看起来比较直观,而且方便,如果是指针变量作为参数,那么你有时候会不明白这个函数到底是对指针进行运算,还是对指针指向的变量空间进行运算,而且还要取地址操作。三、不过有时候指针还是比引用好用的多,不如你需要快捷修改指向位置,那么指针是很快的,有时候你就是要对地址(就是直接对内存)操作,那么指针是首选啦。 下面是一个例子希望对你有用: //PointAndRef.cpp#include<iostream.h> //cout<< void pointFun(int *a,int *b) //指针作为参数{
int temp;
temp=*a;
*a = *b;
*b=temp;
}void refFun(int &a,int &b) //引用作为参数
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int a,b;
a=1,b=2;
pointFun(&a,&b); //指针调用需要取地址值。
cout<<"a="<<a<<"b="<<b<<endl;
int c,d;
c=3,d=4;
refFun(c,d); //引用调用和正常变量调用一样。
cout<<"c="<<c<<"d="<<d<<endl;
}
int temp;
temp=*a;
*a = *b;
*b=temp;
}void refFun(int &a,int &b) //引用作为参数
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int a,b;
a=1,b=2;
pointFun(&a,&b); //指针调用需要取地址值。
cout<<"a="<<a<<"b="<<b<<endl;
int c,d;
c=3,d=4;
refFun(c,d); //引用调用和正常变量调用一样。
cout<<"c="<<c<<"d="<<d<<endl;
}
2013-06-27
展开全部
明显的标志就是一个直接使用指针变量而另一个使用&(间接)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-27
展开全部
指针不是一下子讲的完的哦
我推荐你去看一下C和指针这本书吧
再有不懂可以再问的
我推荐你去看一下C和指针这本书吧
再有不懂可以再问的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询