我想知道这两者之间的区别:
Integer I = 30; // is it autoboxing?
Integer I = new Integer(30); // I know it is autoboxing
Run Code Online (Sandbox Code Playgroud) 就像每个函数都被放在一个堆栈框架上执行它,并在完成后刷新它.因此,任何局部变量都不可用于其他函数.但那么我们如何能够将一个局部变量返回给调用者呢?
int pickMin( int x, int y, int z ) {
int min = x ;
if ( y < min )
min = y ;
if ( z < min )
min = z ;
return min ; }
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常.但是在下面的代码中,编译器确实给出了一条警告信息 - " warning: function returns address of local variable [-Wreturn-local-addr] return a;"但是它最后打印了一个垃圾值,我认为这很好,因为变量已经被刷新了.但为什么不在ABOVE计划中发生这种情况?!我的意思是,它也应该给我一个垃圾malloc值.而且,我知道下面代码中的问题可以使用,然后返回该值来解决.:)
int *returnarray(){
int a[10]; int i;
for(i=0;i<10;++i){
a[i] = i;
}return a;}
Run Code Online (Sandbox Code Playgroud)