分享
 
 
 

&操作符浅析

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

&操作符浅析

& operator用法

1. &地址操作符

&可以获取C++中基本类型,结构,累,集合类型的地址 . 下面一个例子中, &操作符取得数组nArray中第三个元素的地址

// Example of the address-of operator

int *pPtr;

int nArray[20];

pPtr = &nArray[2];

2. & Bit与操作符

&操作符把两个数据进行按位与操作 .

// Example of the bitwise-AND operator

int nNumA=1, nNumB=3, nNumC; // 00000001, 00000011

nNumC = nNumA & nNumB; // nNumC is now 1

3. &做为引用操作符的最基本用法:

用在函数参数的传递中. C++函数参数传递有三种方式. 值,指针,引用 . 引用在存储方面表现的像指针,引用也是保存着对象(object)的地址 . 但是与指针方式不同的是 , 引用在使用方面表现的像值传递 . 下面是一个基本的例子:

void AddIt(int& x)

{

x += 2;

}

int x;

x = 3;

AddIt(x);

printf("%d, x) ; // the value of x is now 5

4. 函数返回,引用传递代替值传递

如果函数返回值是一个对象,有些场合用 ‘引用传递’代替’值传递’可以提高效率 .

String & String::operate =(const String &other)

{

// (1) 检查自赋值 // 4分

if(this == &other)

return *this;

// (2) 释放原有的内存资源 // 3分

delete [] m_data;

// (3)分配新的内存资源,并复制内容 // 3分

int length = strlen(other.m_data);

m_data = new char[length+1]; // 若能加 NULL 判断则更好

strcpy(m_data, other.m_data);

// (4)返回本对象的引用 // 3分

return *this;

}

对于赋值函数,应当用”引用传递”的方式返回String对象.如果用’值传递’的方式,虽然功能仍然正确,但是由于return语句要把*this拷贝到保存返回值的外部存储单元之中,增加了不必要的开销,降低了赋值函数的效率 .

String a,b,c;

a = b; // 如果用“值传递”,将产生一次 *this 拷贝

a = b = c; // 如果用“值传递”,将产生两次 *this 拷贝

5. 指针的引用

对于C + +中的引用,语法清晰多了。函数参数变成指针的引用,用不着取得指针的地址。通过运行下面的程序,将会看到指针本身增加了,而不是它指向的内容增加了。

Void increment(int*& i){i++;}

Main()

{

int* i=0;

cout<< “i=”<<i<<endl;

increment(i);

cout<<”i=”<<i<<endl;

}

6. 函数参数使用 const &

因为函数如果是值传递的话 , 函数会先构建一个临时对象,这会消耗一定的时间(构造函数,析构函数) . (当然int , bool这种基本数据类型除外) . 所以我们参数传递使用const & , 可以省去临时对象的构造和析构过程,从而提高的效率 .

参考资料

ü MSDN

ü 高质量C++编程 (林锐)

ü C++ Primer 3rd Edition

ü Thinking in C++

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有