c++的函数返回值

来源:百度知道 编辑:UC知道 时间:2024/06/13 16:19:38
int fun()

{

int x;

return x;

}

void main()

{

cout<< fun();

}

请问一下:在fun子函数中,定义int x需要分配一个整型空间,执行return x要不要把x的

值分配一个空间,还是把x的值存到寄存器里??如果存到寄存器里是不是这个值没有地址??

会把x的值存储到一个临时对象里面的。
这个值,会存储到栈里面。
函数的返回值用于初始化调用函数处创建的临时对象,如果一个表达是中调用了函数,编译器会创建一个没有命名的对象,就是临时对象。
例如你cout<< fun();调用了fun()这就需要一个临时对象存储返回值。
如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。

执行return 语句返回值都是放到eax寄存器里,如果数据太大,就会把这个数据的地址放到eax

C/C++讨论群:91391518;欢迎加入。