今天在写程序的时候,发现了一个小小的知识点,其实也并不算知识点吧,也许是一个编译器的漏洞,申明:今天的编译器用的是vs2019,今天想分享给大家这一段有趣的代码!

话不多说,直接上代码!

#include<stdio.h>
int  fun()
{printf("hehe");return ;}
int main()
{int c = fun();printf("%d", c);return 0;
}

大家乍一看,哎这是一段有问题的代码啊,很明显,fun函数是有返回值的,但是最后的return 却并没有设定返回值,只写了一个return ,同时我们还要用变量c来接收这个返回值,最后编译器竟然通过了,这一段漏洞百出的代码,编译器竟然通过了,当然,我们无视警告哈,那么,接下来,我来带大家讨论一下这个返回值究竟是什么!

首先输出这段代码的返回值!

哎,返回值是4,那么我们改变一下printf输出的内容,看一下它是否会变化!

这次我们改变了一下输出的内容,哎,这好像是我们输出的字符的数目哎,这好像是printf的返回值哎,我们再测试了几组数据,发现确实是,然后我们看一下下面的这段代码测试!

上面这一段呢,fun函数里面直接没有语句,只有一个return语句,执行结果为乱码,或者说是随机数,那马接下来我们用赋值或者说定义变量语句来试一下!

我们再fun函数中定义了两个变量并对其进行了初始化赋值,返回结果又是乱码,我们知道赋值语句是没有返回值的,结论先别着急下,我们再试几组代码!

到了这儿,真相已经逐渐开始明了了,下面我们总结一下结论。

当我们出现上面的代码的时候 ,即在主函数中调用一个局部函数的时候,注意:这个局部函数在定义的时候设定了整型返回值(这个函数允许有返回值),且return 后面并没有明确表示要返回的值具体的值,即return;此时在主函数中接收到的返回值就是局部函数return 语句上一段语句或者函数调用语句的返回值,那么这个结论在主函数中是否同样适用呢?我们来简单看一下!

很明显,并不适用于主函数的return(如果适用的话最后的代码应该为2了),说明这个结论只适用于特定的情况,希望大家能够注意这个点!好了,今天的分享到此结束,如果大家觉得有所帮助的话,点一个小小的赞吧!

奇奇怪怪的return相关推荐

  1. C. 奇奇怪怪的魔法阵(未搞懂)

    C. 奇奇怪怪的魔法阵 题意: n个点m条边,定义集合S为独立集,当且仅当任意x,y∈S,x与y之间没有边.空集也是独立集 现在对于每一个点的集合T,有多少子集为独立集 设N=0,1,-,n-1,AT ...

  2. Vue组件库 View UI 来看看这80种奇奇怪怪的按钮

    80种奇奇怪怪的按钮,先睹为快! 本文详细讲解 View UI 中,Button 组件的样式配置和单击事件响应. 目录 一.按钮样式 1.1 颜色 1.2 大小 1.3 按钮形状 1.4 背景透明 1 ...

  3. 安卓开发中遇到的奇奇怪怪的问题(三)

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. 距离上一篇 安卓开发中遇到的奇奇怪怪的问题(二)又过了半年了,转眼也到年底了,是时候拿出点干货了.这篇算是本年度个人印象最深的几 ...

  4. 【ShaderLab踩坑记录】【待解决 / 求助】给AlphaTest添加阴影导致的奇奇怪怪的Bug

    庄懂的技术美术入门课(美术向)-直播录屏-第12课 偶然看到了庄懂老师的公开课,下载了工程,跟着做了一个第12节课的DOTA2角色shader,结果遇到了一个动用我全身上下的脑子(bushi)也想不清 ...

  5. 奇奇怪怪的小姿势——关于UI的各种Position

    奇奇怪怪的小姿势--关于UI的各种Position LocalPosition     重心点相对于父节点重心点的偏移量 AnchoredPosition   重心点相对于父节点锚点的偏移量 Posi ...

  6. 奇奇怪怪的大佬:从职业赌徒到互联网大佬

    想必上个月花季少女命丧货拉拉的新闻大家都有所耳闻,虽然事后警方已经给出了最终分析结果,但是货拉拉司机途中曾三次偏离导航规划路线.车内无任何录音录像设备.少女跳窗为何后脑勺着地等耐人寻味的话题,一时间将 ...

  7. 各种奇奇怪怪的编码,究竟怎么来的?

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:数据分析与统计学之美 问题起源 我们在学习Python的过程中,可能会经常遇到下方这样的编码问题. 有时 ...

  8. 除了菊纹识别,AI还有哪些奇奇怪怪的识别能力?

    对于AI技术来说,我们人体简直就是一个大数据的宝藏. 最近发表在<自然·生物医学工程>杂志上的"斯坦福智能马桶",成为人们热议的"最有味道"的AI应 ...

  9. 对比学习知识扩展——一堆奇奇怪怪的loss,快把我压死了orz...

    1.交叉熵loss和对比loss区别 交叉熵 loss 是 最后结果过一层 fc 然后进行 softmax . 然后  fc  的系数 W 就是特征的模板(模板的意思是把一些特征用这个Wc参数转换后, ...

最新文章

  1. Python最抢手、Go最有前途,7000位程序员揭秘2019软件开发现状
  2. AI在医疗行业的最新进展
  3. 【133天】尚学堂高淇Java300集视频精华笔记(71-72)
  4. Discuz验证码识别(上线篇)-写给程序员的TensorFlow教程
  5. 最后关于nginx+passenger+ror+mysql的安装部署过程
  6. Python面向对象(二)
  7. 【最小生成树】水箱(P5952)
  8. Java是否越来越接受静态导入?
  9. [BZOJ 3647]
  10. 【今日CV 计算机视觉论文速览】Mon, 18 Mar 2019
  11. 探索MicroPython(四)--传感器应用
  12. STL之仿函数实现详解
  13. 台达 PLC 绝对定位
  14. Text file busy解决方法
  15. 基于51单片机的LCD12864游戏机设计
  16. 《SLAM十四讲》7.6 三角测量 triangulation.cpp
  17. 遍历Lua全局环境变量
  18. ES6 标签模板(Tagged templates)
  19. VRF(虚拟路由转发)
  20. 详解pandas中的groupy机制

热门文章

  1. Python|“套娃”算法-递归算法解决全排列
  2. 此网页包含重定向循环
  3. 微盟数据修复为什么需要七天七夜?
  4. 算法面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
  5. 攻略世界树 (网络流)
  6. 基于MyBatis注解的学生管理程序
  7. java贝塞尔曲线_贝塞尔曲线学习
  8. html超链接去掉下划线 鼠标悬停超链接变颜色
  9. UC(Unified Communication)统一通讯故事 2010-11-3
  10. 安装sysbench