永发信息网

C语言中对指针变量的直接和间接引用怎么区别

答案:3  悬赏:10  手机版
解决时间 2021-01-29 06:04
C语言中对指针变量的直接和间接引用怎么区别
最佳答案
引用相比于于指针各有优点:一、引用变量它不能改变自身所引用的地址空间,而指针变量可以,那么就很可能出现一些因为不小心的修改而导致错误的结果。二、在作为函数参数方面,引用作为参数,你调用的时候不需要对变量取地址值,这样看起来比较直观,而且方便,如果是指针变量作为参数,那么你有时候会不明白这个函数到底是对指针进行运算,还是对指针指向的变量空间进行运算,而且还要取地址操作。三、不过有时候指针还是比引用好用的多,不如你需要快捷修改指向位置,那么指针是很快的,有时候你就是要对地址(就是直接对内存)操作,那么指针是首选啦。 下面是一个例子希望对你有用: //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;
}
全部回答
指针不是一下子讲的完的哦 我推荐你去看一下C和指针这本书吧 再有不懂可以再问的
void f(int * &ptr)是自定义函数! 无返回值!参数类型为指向int型变量的指针变量!即参数&ptr的类型是指向int型变量的指针!那就很好解释啦! int *ap = arr,实际上是 int *ap = &arr[0], 分开写就是: int *ap; ap = &arr[0]; 故 f(ap) 相当于 f(&arr[0]) 传的参数是指向int型变量的指针!正确! 而 f(arr) 中 arr 是错误写法,数组单独使用必须加下标! 但指针指向数组时!可以写成:ap = arr 相当于 ap = &arr[0] 但单独使用 arr 是错误的!它什么也不是!更不会是指向int型变量的指针,它不存在!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
市场上卖的钛金锅是什么金属呀?像极了不锈钢
想要这样一个模板,是田字格的,里面的字可以
朋友借我十万元钱,有借条,不还,本人向法院
带画面的石头值钱吗?
宝宝上火感冒吃什么药
同款涡轮增压的SUV手动挡和自动挡哪个省油?
炼山的意思是什么啊?知道的请说下!
(在线等分秒送)想将文字转化成MP3下载到手
【四分之三英语】英语中四分之三怎么说
三年多了,准备去换变速箱和刹车油 有什么要
佐卡伊和施华洛世奇有什么不同?
没有拆包装的米怎么防虫
染指垂涎的意思是什么啊?知道的请说下!
我查话费但是收不到短信,但是把卡换在另一个
广东汕头潮阳,天猫超市会送件吗?
推荐资讯
人在国外工作五险一金最低标准
新华印务中心地址有知道的么?有点事想过去
用双截棍会打死人吗?
宏碁tmp238 13.3英寸轻薄笔记本电脑 可以自己
为什么将一个正数开平方,关键是找出它的算术
说服的意思是什么啊?知道的请说下!
肇庆市端州区注射狂犬疫苗要多少钱
西晋的衣着和三国时期有什么不同
星潮台球地址好找么,我有些事要过去
交城到长治的汽车是几点发车?
滴道区工商局地址好找么,我有些事要过去
大家觉得屋里病死过人的房子能买来住吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?