当前位置: 首页 > news >正文

深圳网站建设定制有什么网站可以做设计赚钱吗

深圳网站建设定制,有什么网站可以做设计赚钱吗,上海突发新闻,资金盘app开发要多少钱#x1f31f;#x1f31f;作者主页#xff1a;ephemerals__ #x1f31f;#x1f31f;所属专栏#xff1a;C 目录 前言 一、引用的概念和定义 二、引用的特性 三、引用的实用性 1.引用传参 2.引用做返回值 2.1 引用做返回值的作用 2.2 引用坍缩问题、悬挂引用问… 作者主页ephemerals__ 所属专栏C 目录 前言 一、引用的概念和定义 二、引用的特性 三、引用的实用性 1.引用传参 2.引用做返回值 2.1 引用做返回值的作用 2.2 引用坍缩问题、悬挂引用问题 四、const修饰引用 五、引用和指针的联系 总结 前言 我们都知道在c语言中指针是一种功能十分强大的数据类型它允许我们直接访问并且操作内存。然而它在使用时稍有不慎就会出错。对此c引入了一个新的概念引用。引用可以实现部分类似于指针的功能并且它比指针更加安全、简洁。 一、引用的概念和定义 引用作为c中的一种特殊别名机制当我们定义引用时并不是创建了一个新变量而是 给原有的变量起了一个别名。它的定义方式如下 (数据类型) 引用名 引用对象; 代码举例 #include iostream using namespace std;int main() {int a 0;int b a;//定义引用给a取了一个别名a;cout b endl;b;cout a endl;return 0; } 运行结果 可以看到无论是对a自增还是对b自增它们表示的值都会发生改变。我们再来打印一下它们的地址 cout a endl; cout b endl; 结果显示它们的地址是相同的。这表明引用只是给变量起了一个别名表示的还是同一块内存空间。 我们画图表示一下引用 二、引用的特性 引用有以下三点语法特性 1.引用在定义的时候必须要表明它所表示的对象。 2.由于引用是用作给变量取别名所以一个变量可以有多个引用。当然引用也可以有引用。 3.引用一旦指定了对象就不能再指定其他对象。 三、引用的实用性 了解的引用的概念和特性之后我们不禁会发出疑问既然要对变量进行操作直接修改不就好了嘛何必还要取一个别名呢 1.引用传参 举一个例子 #include iostream using namespace std;void Swap(int x, int y) {int tmp x;x y;y tmp; }int main() {int a 3;int b 5;Swap(a, b);//交换a和b的值cout a a endl;cout b b endl;return 0; }运行结果 可以看到使用引用传参通过函数交换了变量a和b的值。由于引用是给变量起别名所以此时的x和y就表示a和b本身。因此我们在函数内部就实现了这两个元素的交换。相比传址调用它的写法更加简单并且在语法层面引用是不开辟新内存的减少了拷贝节省了内存空间。 2.引用做返回值 2.1 引用做返回值的作用 首先来看一段代码 #include iostream using namespace std;int fun() {static int a 10;return a; }int main() {fun();//报错cout fun() endl;return 0; } 很显然以上代码是不可行的。函数的返回值是一个临时变量而临时变量具有常性我们无法对这个值进行修改。但是引用做返回值可以做到这一点 #include iostream using namespace std;int fun() {static int a 10;return a; }int main() {fun();cout fun() endl;return 0; } 我们将返回值改成int的引用类型则此时函数返回静态变量a的别名所以我们让它自增就相当于改变了a的值。 有了引用做返回值我们在调用函数的时候就可以通过这个返回值直接访问和修改原始对象并且避免了临时变量的拷贝增加程序运行的效率。 2.2 引用坍缩问题、悬挂引用问题 刚才引用做返回值的方法虽然好用但是难免会出现一些问题。举个例子 #include iostream using namespace std;int func1() {static int a 0;return a; }int main() {int x func();return 0; } 虽然这里的func1函数返回了a的引用但是我们却在主函数中以一个整形变量来接收这里就会发生一种隐式的类型转换--引用坍缩编译器会将这个返回值转换为它所引用的对象的一个临时拷贝这将导致我们无法访问并修改a的值达不到预期效果。所以一定要以相同类型的引用来接收引用返回值。 再举一个例子 #include iostream using namespace std;int func2() {int a 0;return a; }int main() {int x func();return 0; } 在func2函数中我们创建了一个局部变量a并且返回它的引用但是由于a是一个局部变量当函数栈帧销毁时变量a的空间已经被释放了此时的返回值就变成一个悬挂引用野引用也就是说这个引用的主体已经不存在了程序的运行结果就是未定义的。所以我们在使用引用做返回值时一定要注意返回后的引用主体是否还存在。 四、const修饰引用 我们在定义引用时可以在变量名之前加上const修饰称之为常引用。当一个引用被const修饰时该引用就无法修改其所表示的对象。例如 #include iostream using namespace std;int main() {int a 0;const int b a;a 10;b 20;//报错return 0; } 注意对于一个被const修饰的变量定义它的引用时也需要用const修饰。例如 #include iostream using namespace std;int main() {const int a 0;int b a;//报错const int c a;//正确return 0; }对于以下情况定义引用时也必须要用const修饰 #include iostream using namespace std;int main() {int a 5;const int b a * 3;//a*3是一个临时对象具有常性它的引用要用const修饰float c 5.5f;const int d c;//当引用和对象的类型不同时由于隐式类型转换的结果是一个临时对象定义引用也需要用const修饰return 0; }五、引用和指针的联系 引用和指针是相辅相成的它们能够实现对方的部分功能但是又不可完全替代。它们的一些联系和区别如下 1.从语法层面上引用是对一个对象取别名不会开辟空间而指针用于存储一个对象的地址会开辟空间。 2.定义引用时必须要指定表示的对象而指针在定义时可以不指向对象。 3.引用不能改变表示的对象而指针可以改变。 4.由于引用是对象的别名所以可以直接通过引用访问对象而指针则需要解引用才能访问对象。 5.相比指针引用在使用上更加安全不容易出现悬挂引用的问题。 6.在某些情况下指针和引用在语义上可以相互替代例如函数传参都可以形成数据共享并且避免内存的过度消耗。 总结 今天我们学习了引用。引用的功能十分强大同时也弥补了指针的一些不足。深入理解引用对我们之后学习并实现类的相关功能有很大帮助。如果你觉得博主讲的还不错就请留下一个小小的赞在走哦感谢大家的支持❤❤❤
http://www.dnsts.com.cn/news/162833.html

相关文章:

  • 为什么做腾讯网站建网站要多少费用
  • 企业官方网站制作七宝网站建设
  • 深圳的网站建设公司怎么样wordpress淘宝客排名主题
  • 怎么推广我的网站吗高周波做网站
  • 大作业网站建设方案大庆做流产油城女子网站
  • 中国化工网网站建设建议nike官网宣传片
  • 个人网站建设大全教育网站安全建设方案
  • 狮山网站建设2015年做网站行不行
  • 哪里建设网站怎么给网站做关键词搜索
  • 鄂尔多斯网站网站建设房地产网站开发商
  • 北京网站开发报价绿色学校网站模板
  • 做哪些网站比较好cute主题破解版WordPress
  • 单位怎样做网站陕西省住房和城乡建设厅网官网
  • 临安做企业网站开了外网网站打不开
  • 甘南州合作市住房建设局网站天津南开做网站公司
  • 成都网站空间网站服务器和网站备案
  • 网站一直显示建设中手机怎么创网站免费
  • 建设部网站 绿色建筑评价表互联网网站建设
  • 网站搭建用什么语言资中移动网站建设
  • 网站允许flashwordpress 手机不显示图片
  • 华创网站建设建立主题网站的顺序是
  • 网站建设说课获奖视频wordpress双主题缓存
  • wamp做的网站上传建筑人才网兼职小时工
  • 宁波网站推广渠道程序员做任务的网站
  • 廊坊网站建设-纵横网络+网站企业网站制作流程图
  • 网站制作怎么学去哪学ps建设此网站的必要与可行性
  • 越秀区建设水务局网站私域电商平台排名
  • 保定网站建设制作wordpress有留言时邮件提醒
  • 什么网站可以自己做房子设计图确定网站建设目标
  • wordpress子目录多站点设置保定网站建设与seo