指针和引用的区别描述错误的是_指针和引用的区别|环球简讯
1、指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ”),但是它们似乎有相同的功能。
(资料图)
2、指针与引用都是让你间接引用其他对象。
3、你如何决定在什么时候使用指针,在什么时候使用引用呢? 首先,要认识到在任何情况下都不能使用指向空值的引用。
4、一个引用必须总是指向某些对象。
5、因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。
6、相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。
7、 “但是,请等一下”,你怀疑地问,“这样的代码会产生什么样的后果?” char *pc = 0; // 设置指针为空值 char& rc = *pc; // 让引用指向空值 这是非常有害的,毫无疑问。
8、结果将是不确定的(编译器能产生一些输出,导致任何事情都有可能发生)。
9、应该躲开写出这样代码的人,除非他们同意改正错误。
10、如果你担心这样的代码会出现在你的软件里,那么你最好完全避免使用引用,要不然就去让更优秀的程序员去做。
11、我们以后将忽略一个引用指向空值的可能性。
12、 因为引用肯定会指向一个对象,在C++里,引用应被初始化。
13、 string& rs; // 错误,引用必须被初始化 string s("xyzzy"); string& rs = s; // 正确,rs指向s 指针没有这样的限制。
14、 string *ps; // 未初始化的指针 // 合法但危险 不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。
15、因为在使用引用之前不需要测试它的合法性。
16、 void printDouble(const double& rd) { cout << rd; // 不需要测试rd,它 } // 肯定指向一个double值 相反,指针则应该总是被测试,防止其为空: void printDouble(const double *pd) { if (pd) { // 检查是否为NULL cout << *pd; } } 指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象。
17、但是引用则总是指向在初始化时被指定的对象,以后不能改变。
18、 string s1("Nancy"); string s2("Clancy"); string& rs = s1; // rs 引用 s1 string *ps = &s1; // ps 指向 s1 rs = s2; // rs 仍旧引用s1, // 但是 s1的值现在是 // "Clancy" ps = &s2; // ps 现在指向 s2; // s1 没有改变 总的来说,在以下情况下你应该使用指针,一是你考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。
19、如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。
20、 还有一种情况,就是当你重载某个操作符时,你应该使用引用。
21、最普通的例子是操作符[]。
22、这个操作符典型的用法是返回一个目标对象,其能被赋值。
23、 vector
24、因此你会选择让操作符返回一个引用。
25、(这有一个有趣的例外,参见条款M30) 当你知道你必须指向一个对象并且不想改变其指向时,或者在重载操作符并为防止不必要的语义误解时,你不应该使用指针。
26、而在除此之外的其他情况下,则应使用指针。
27、
以上就是【指针和引用的区别描述错误的是,指针和引用的区别】相关内容。
标签:
为您推荐
广告
- 指针和引用的区别描述错误的是_指针和引用的区别|环球简讯
- 当前热议!汇绿生态收三季报问询函,说明重新上市后短期内营业收入和净利润均下滑但毛利率大幅增长的原因及合理性
- 天天热点!快递放假么_快递放假时间表
- 东吴证券给予普洛药业买入评级 2022年报点评:业绩符合预期 三大业务均保持稳健增长
- 开勒股份:目前储能业务处于产品开发阶段,光伏业务处初创阶段
- 天天微动态丨氧氯化钛商品报价动态(2023-03-10)
- 全球快播:杭州二日游必去景点_杭州二日游必去景点
- 天天热头条丨湖南省直公积金可以转到市公积金吗?
- 不良人6:李星云的心脏是谁的?是不良帅的吗?其实这是两回事-当前关注
- 全球要闻:如何成为空军飞行员?招飞选拔流程来了!
- 重点聚焦!苏有朋版倚天屠龙记演员表剧照_苏有朋版倚天屠龙记演员表
- 吃了柿子多久可以喝酸奶(吃了柿子不能喝酸奶吗) 世界焦点
- 大众新车要下狠心了!比科鲁兹拉风,才卖10万雪佛兰遇到难题 当前要闻
- 全球快资讯丨QQ个人信息怎么隐藏qq号码_隐藏qq号码图文教程
- 我国古代历法中著名的大衍历是由谁制定的_大衍历编纂者
- 微动态丨柠檬祛斑妙法_柠檬祛斑方法
- 世界速看:树立底线思维和红线意识_底线思维和红线意识
- 头条:小商品城:聘任黄晓英为公司副总经理
- 异动快报:中国卫通(601698)3月9日14点30分触及涨停板
- CBA转播有多离谱?辽宁升冠军旗帜,立马切镜头,球迷期待个寂寞
广告
- 成都随迁子女入学需要居住证吗? 今日最新
- 全球热消息:穿越到大秦的小说
- 孩子功能性腹痛 中医疗法简便有效|当前观点
- 打印机的使用方法_今日播报
- 龙磁科技:恩沃新能源已有储能产品技术储备
- 湖南潇湘聊天室_湖南同志聊天室-天天微速讯
- 松树金龟子
- 【当前热闻】杭州商友全球网信息技术有限公司_关于杭州商友全球网信息技术有限公司简述
- 网络乞丐
- 2023年2月份中国沿海(散货)运输市场分析报告|每日观点
- 环球快讯:毛竹快速种植方法
- 每日视点!数据港03月06日被沪股通减持1.85万股
- 微信群拍一拍怎么用_微信群拍一拍
- 03月07日00时海南屯昌疫情数据 阳了以后为什么会腰疼?应该怎么办?
- 全国两会·代表说|秦和:办好乡村教育,夯实乡村振兴基础
- 水果堂-要闻速递
- 大宏立: 第四届监事会第七次会议决议公告_环球快消息
- photoshop怎样把两张图片合成_怎样用Photoshop将两张图片合成_世界报道
- 世界讯息:坛子村
- 天天微头条丨上海迪士尼互动体验回归,上海迪士尼恢复拥抱互动这几种行为禁止!