首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

无聊小知识.04 以下代码会输出什么?

按照以往认知:finally快是如论如何都要执行的,而return会等待finally执行结束后返回,这里string被修改为"234",那么return的也就是"234"。...这里吐槽以下,文某某言返回的居然是“234”??? 我们用IDEA执行下这段代码: 甚至我们可以看到,idea在finally里面的赋值给出了提示。 提示该string的赋值是不会被使用的。 ...我们先来看下该方法的字节码: 我们可以看到当执行到return时,此时string=123,jvm会将此时的变量地址存储到栈中,当finally执行了string=234后,只是改变了堆对象的,而方法返回的该变量的地址...此时finally虽然改变了,但是地址没有被改变,因此返回的还是原地址所执行的。...我们再来看下字节码: 与上面不同的是,这里多了个areturn,也就是是这里的finally最终的返回会将该变量的地址推到栈顶位置,也就改变了原string=123的,所以string就会输出234了

9310

C语言中的函数为什么只能有一个返回输出?怎么实现多个输出

这是典型的C语言中函数模块中的返回问题,算是常见的语法细节,很多人觉得C语言已经过时了,只能代表着这类人还不算是真正的技术人员,在嵌入式领域C语言依然充当着非常重要的角色,C语言在很多领域还是首选编程语言...常见的C语言难点有指针,结构体,函数,递归,回调,数组等等,看起来没多少东西,每个概念都能延伸很多功能点,今天的题目其实就是函数模块中的返回的问题,面向对象编程的基本单元就属于函数,函数包括参数输入,...具体功能实现,最后是结果的输出,也就是这个题目的返回,在正常情况下函数的返回只有一个,但在实际编程中需要用到多个,在设计时候还是归结成一类,如果类型相近可以弄成数组方式,如果类型不太一致直接放在结构体中执行...现在从语法规则出发列举几个实现多个返回例子: ?...结构体是C语言涉及数据结构的最直接的容器,通常在编程过程中实现一个功能模块,模块中的数据通常都会放在一个结构体中,在在功能函数中对结构体中的数值进行操作,因为结构体中可以放足够多的变量,如果函数返回是个指针的话

7.1K30
领券