返回值直接用传参,就不会报错?函数返回引用碰到的怪现象,该怎么处理

返回值直接用传参,就不会报错?函数返回引用碰到的怪现象
正在看:返回引用,要求在函数的参数中,包含有以引用方式或指针方式存在的,需要被返回的参数。算是能死记住,但是一敲代码,问题就来了......试了下直接返回普通传参......

返回值直接用传参,就不会报错?函数返回引用碰到的怪现象,想想可能是因为不操作,就不会初始化吗?还是其他原因?
这是直接返回传参的写法,只有warning:
C/C++ code
#include <stdio.h>
#include <stdlib.h>

int &func(int t)
{
  return t;
  //This line: [Warning] reference to local variable 't' returned [enabled by default] 
}


int main(int argc, char * argv[]) {

      int a=0;
      int b=func(a);
      printf("&a=0X%08X,&b=%08X\n",&a,&b);

    return 0;
}


如下写法则会报错:
C/C++ code
#include <stdio.h>
#include <stdlib.h>

int &func(int t)
{
  return t+1;
  //This line: [Error] invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int' 
}


int main(int argc, char * argv[]) {

      int a=0;
      int b=func(a);
      printf("&a=0X%08X,&b=%08X\n",&a,&b);

    return 0;
}



既然规定是必须用引用或者指针类型做返回值,那是否应该连直接返回都不行?
或者我太纠结细节了么?只要没有修改到啥?....

------解决方案--------------------
第一个,返回局部变量的引用,警告
第二个,返回 临时变量的引用,直接错误。
语法规定。

------解决方案--------------------
探讨

第一个,返回局部变量的引用,警告
第二个,返回 临时变量的引用,直接错误。
语法规定。

------解决方案--------------------
你返回局部变量的引用了。