游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

c引用详解

  铺垫:
  变量名实质上是一段连续存储空间的别名,是一个标号
  程序中通过变量来申请并命名内存空间
  通过变量的名字可以使用存储空间
  (能不能再名字的基础上在起个名字?)
  概念:
  1)可以看做一个已定义变量的别名
  引用是c的语法范畴,不能再用c语言的思想去思考问题(间接修改)
  属于c编译器对c的扩展
  引用做函数参数
  普通引用在声明时必须用其他的变量进行初始化
  引用作为函数参数声明时不进行初始化includeiostreamusingnamespacestd;引用基本用法voidmain(){inta10;intba;b100;printf(b:d,b);printf(a:d,a);couthello。。。。endl;system(pause);return;}voidmain11(){inta10;intba;intc;普通引用必须要初始化system(pause);}voidmyswap01(inta,intb){intc0;ca;ab;bc;}voidmyswap02(inta,intb){intc0;ca;ab;bc;}voidmyswap03(inta,intb){intc0;ca;ab;bc;}voidmain(){intx,y;x10;y20;myswap01(x,y);printf(x:d,y:d,x,y);myswap02(x,y);printf(x:d,y:d,x,y);myswap03(x,y);printf(x:d,y:d,x,y);system(pause);}复杂数据类型的引用structTeacher{charname〔64〕;intage;};voidprintfT(TeacherpT){coutpTageendl;}pT是t1的别名,相当于修改了t1voidprintfT2(TeacherpT){coutpT。ageendl;}pT和t1是两个不同的变量voidprintfT3(TeacherpT){coutpT。ageendl;pT。age45;只会修改pT变量,不会修改t1变量}voidmain(){Teachert1;t1。age35;printfT(t1);printfT2(t1);pT是t1的别名printfT3(t1);pT是形参,t1拷贝了一份数据,给pTprintf(t1。age:d,t1。age);couthello。。。。endl;system(pause);return;}
  引用的意义
  引用作为其他指针变量的别名而存在,因此在一些场合可以替代指针
  引用相对于指针来说具有更好的可读性和实用性
  引用的本质
  c编译器背后做了什么工作
  单独定义的时候必须初始化很像常量
  1)引用在c内部实现是一个常指针
  2)c编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占的空间与指针相同
  3)从使用的角度,引用会让人误会其只是一个别名,没有自己的储存空间,这是c为了实用性做出的细节隐藏。
  结论:当我们使用引用的语法时,我们不用去关心编译器引用是怎么做了
  当我们分析奇怪的语法现象时,才去考虑编译器是怎么做的includeiostreamusingnamespacestd;voidmain01(){constintc110;inta10;intba;像常量printf(a:d,a);printf(b:d,b);ab就是同一块内存空间的门牌号依附于这个内存空间couthello。。endl;system(pause);return;}普通引用有自己的空间吗?有,和指针所占的一样structTeacher{charname〔64〕;64intage;4inta;4intb;4};引用的本质一个常量指针voidmain(){printf(sizeof(Teacher):d,sizeof(Teacher);system(pause);}voidmodifyA(inta1){a1100;}voidmodifyA2(intconsta1){a110;实参的地址,去间接修改实参的值}voidmain(){inta10;modifyA(a);指向这个函数调用的时候,我们程序员不需要取a的地址printf(a:d,a);modifyA2(a);如果是指针需要我们手工去取实参地址printf(sizeof(Teacher):d,sizeof(Teacher));system(pause);}间接赋值间接赋值成立的三个条件1定义2个变量2建立关系实参取地址传给形参3形参间接修改实参的值voidmodifyA3(intp){p190;3}voidmain(){inta10;intpNULL;1pa;p100;{p200;}modifyA3(a);2}引用是间接赋值哪几个条件的组合?2编译器做了123后2个条件写在一起了只不过2编译器做了
  函数返回值是引用(引用当左值)
  c引用使用时的难点:
  当函数返回值为引用时,
  若返回栈变量,不能成为其他引用的初始值,不能作为左值使用
  若返回静态变量或全局变量可以成为其他引用的初始值。
  即可作为右值使用,也可作为左值使用includeiostreamusingnamespacestd;intgetAA1(){inta;a10;returna;}返回a的本身intgetAA2(){inta;a10;returna;}intgetAA3(){inta;a10;returna;}voidmain01(){inta10;inta20;a1getAA1();a2getAA2();inta3getAA2();printf(a1:d,a1);printf(a2:d,a2);printf(a3:d,a3);couthello。。endl;system(pause);return;}返回静态全局intj(){staticinta10;a;returna;}intj(){staticinta10;a;returna;}voidmain(){inta110;inta220;a1j1();a2j2();inta3j2();printf(a1:d,a1);printf(a2:d,a2);printf(a3:d,a3);couthello。。endl;system(pause);return;}函数当左值返回变量的值intg(){staticinta10;a;returna;}返回变量本身intg(){staticinta10;a;returna;}voidmain(){g1()100;执行这个,函数返回值就是11。不成立errg2()100;把上面的函数改成了100,所以这个就成立system(pause);}
  指针的引用includeiostreamusingnamespacestd;structTeacher{charname〔64〕;intage;};intgetTeacher(Teacherp){TeachertmpNULL;if(pNULL){return1;}tmp(Teacher)malloc(sizeof(Teacher));if(tmpNULL){return2;}page33;ptmp;}指针的引用做函数参数intgetTeacher2(Teachermyp){给myp赋值相当于给主函数中的pT1赋值myp(Teacher)malloc(sizeof(Teacher));if(mypNULL){return1;}page36;}voidFreeTeacher(TeacherpT1){if(pT1NULL){return;}free(pT1);}voidmain(){TeacherpT1NULL;getTeacher(pT1);二级指针coutage:pT1ageendl;FreeTeacher(pT1);getTeacher2(pT1);引用coutage:pT1ageendl;FreeTeacher(pT1);couthello。。endl;system(pause);return;}
  c中的const常量
  可能分配内存空间,也可能不分配
  当const常量为全局,并且需要在其他文件中使用,会分配空间
  在使用操作符,取const常量的地址,会分配
  当const修饰引用,会分配includeiostreamusingnamespacestd;voidmain(){intx20;constintyx;常引用让变量拥有只读属性不同通过y去修改x了常引用初始化分为2种情况1)用变量初始化常引用{intx130;constinty1x1;}2)用字面量初始化常引用{constinta40;intm41;普通引用引用一个字面量字面量有没有内存地址?没有}couthello。。endl;system(pause);return;}
  结论:
  constinteconstintconste
  普通引用intconste
  当使用常量对const引用进行初始化时,编译器会为常量值分配空间,并用引用名作为这段空间的别名
  使用字面量对const引用初始化后,将生成一个只读变量

酷开网络推出多款大屏游戏,宅家也有趣宅多少天了?有啥有趣的游戏推荐吗?成为这个春节大家相互问候的流行语。大家都知道宅家是阻断病毒传播的重要途径,所以宅家做个安静的美男子也能元气满满,为了让大家宅家不寂寞,酷开网络……点外卖用英语怎么说?总不能说CallWaimai吧那家店有点远,我们要不叫外卖吧?今天有点冷,不想去楼下吃饭,要不点个外卖?外面太热了,咱要不一起点个外卖?不知道从什么时候开始外卖已经成了我们生活的一部……深度揭秘云网融合到底是什么?这些年来,随着云计算的快速发展,还有5G建设的全面启动,云网融合这四个字频繁出现在我们面前,行业大领导也多次提及,吸引了很多人的关注。今年,国家把新基建作为战略发展方向,……不懂音频,却又想有顶级HIFI体验?不妨来试一试HibyFD前言厌倦了皮包、HIFI砖的厚重感,最近半个月都在玩更轻量化且具有优秀声学素质的解码耳放产品。在朋友的推荐下,我提前入手了主打全接口便携解码的最新一代海贝FD3解码耳放,……长安坐不住了,搭载蓝鲸iDD混动的UNIK来了从丰田THS到本田iMMD,从比亚迪DMi到长城DHT,近期,低油耗混动开始全面爆发,汉兰达双擎、秦PLUSDMi、WEY玛奇朵HEV、奇瑞瑞虎8PHEV。。。各种重磅新品实现……线上渠道乱价,创因科技陪你一起扫清!自2003年来,国内电商蓬勃发展,遍地开花。从淘宝到拼多多、聚美、网易、微商、海淘等,电商给品牌带来了机遇。企业也开始在电商平台加大推广、宣传的力度,经销商随着品牌的推广……珠宝品牌Leman视觉形象升级Leman创办于1950年,是一个独立的高级时装设计品牌,专注于钻石研究。多年来,他们不仅塑造了越南钻石贸易市场,还以其独特的钻石首饰设计,向上流社会开启了一种全新的行为方式。……智能汽车违规采集传输到海外,网络安全蔓延到智能汽车近日工信部公布了部分违规行为车联网存在2000多条安全漏洞包括车载智能网关、远程通信等漏洞监测显示,今年上半年针对车联网平台网络恶意行为超过……南昌梅岭顶峰的烂尾楼,究竟什么原因荒废多年今天晚上和朋友一起约着去梅岭乘凉,一路开车开到洗药湖旁边,发现路边有一栋很高的楼房,但是好像已经废弃多年,现在好像成了游客探险、纳凉、约会的地方我们四个人一起爬了进来,发……可怕!首位被颁发公民身份的美女机器人来了,一开口全场惊呆沙特阿拉伯颁发美国汉森机器人公司生产的女人机器人索菲亚公民身份。作为史上首个取得公民身份的机器人,索菲亚当天在沙特说,她期望用人工智能协助人类过上更夸姣的日子。据香港东网……潮IN青春艾瑞泽和朋友的玩酷领地打响潮IN玩车第一枪不论哪个年代,激活潮流,拥抱变化,就是青春潮IN样。作为一家致力于打造全球竞争力的中国汽车品牌,奇瑞汽车将于5月15日在河北红崖谷,启动以艾瑞泽和朋友们的玩酷领地为主题的……巴西总统我就不打据法新社消息,联合国大会将于当地时间9月21日在美国纽约举行,纽约市政府近期宣布,所有与会者必须出具接种新冠疫苗的证明,不过坚决不打疫苗的巴西总统博索纳罗却表示,他将如期出席。……
重启之极海听雷焦老板身份及结局是什么在《重启之极海听雷》剧中,焦老板是这部剧最大的反派,身份非常复杂,一直要置吴邪一行人与死地,那么,雷焦老板真实身份是什么呢?结局又如何了呢?一起往下看了解了解。1重启之极海听雷……什么样的电动车一次充电跑200公里,需要什么配置?数据告诉你请您在阅读前,先点击上面的关注。感谢您的支持,我们将为您带来更多有价值的内容。近日,平台上有车主问道:什么样的电动车一次充电能跑200公里?市面上商家推出的能跑200公里……宫心计2深宫计王蓁结局是什么宫心计2深宫计王蓁是怎么死的宫心计2深宫计王蓁结局是什么:宫心计2深宫计王蓁是怎么死的电视剧《宫心计2深宫计》正在热播中,剧中王蓁是皇后,王蓁最后的结局是什么?宫心计2深宫计王蓁是怎么死的?宫心计2……宫心计2深宫计司珍徐相思是谁演的徐相思扮演者罗霖资料简介宫心计2深宫计司珍徐相思是谁演的:徐相思扮演者罗霖资料简介宫心计2深宫计司珍徐相思是谁演的?电视剧《宫心计2深宫计》正在热播中,剧中司珍徐相思是什么人,司珍徐相思是好人还……宫心计2深宫计王蓁是谁演的王蓁扮演者是胡定欣资料简介宫心计2深宫计王蓁是谁演的:王蓁扮演者是胡定欣资料简介电视剧《宫心计2深宫计》正在热播中,剧中的王皇后王蓁是好人还是坏人,王蓁结局是什么?宫心计2深宫计王蓁是谁演的,宫心……武间道电视剧什么时候播出武间道杨洋被上刑是第几集武间道电视剧什么时候播出:武间道杨洋被上刑是第几集《武间道》是由杨洋主演的一部抗战剧,那么武间道电视剧什么时候播出?武间道杨洋被上刑是第几集?下面一起来了解一下!武……宫心计2深宫计一共多少集宫心计2深宫每周几点更新几集宫心计2深宫计一共多少集:宫心计2深宫每周几点更新几集电视剧《宫心计2深宫计》将于5月21日在腾讯视频开播,下面就和小编一起来看看宫心计2深宫计一共多少集,以及每周几点更……归去来开播归去来播出时间,归去来在哪个台播归去来开播:归去来播出时间,归去来在哪个台播《归去来》发布了ldquo;奋斗版rdquo;预告片和人物群像海报,正式宣布提档5月14日,登陆北京卫视和东方卫视黄金档。该剧……戴尔推出新游匣G15游戏本i712700HRTX3060显卡戴尔现已上架新款游匣G15游戏本,搭载i712700H处理器和RTX3060显卡,最高可选2K240Hz屏,2月17日正式开卖。我们了解到,新款游匣G15游戏本标配i71……加油你是最棒的心凌是谁演的心凌是好人还是坏人电视剧加油你是最棒的中的演员都很有辨识度,主创都是老戏骨,配角们也各有特色,最近上线的心凌这个角色就是一个很漂亮的小姐姐。那么这个新上场的心凌是谁扮演的?在剧中饰演的是好人还是……AI融资要变天?从小甜甜到牛夫人,云从走向上市之路【潮汐商业评论文】Ada想要银行去办点业务,等了好一会,终于轮到了自己。她站在银行办理业务的机器面前,跟随着业务人员的指导开始在华丽的屏幕上点击起来。伴随点击,Ad……躺枪中兴被快手列为了山寨机关注手机的朋友这几天可能都知道一件事,因为快手平台某网红贩卖山寨手机,在网上引起了不小的舆论,而快手方面的举措也很迅速,正式发布了一份手机行业治理公告,表示将对手机类目展开专项……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网