原文:c语言 局部变量做返回值 问题

一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址 指针 的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针 注意 ...

2013-11-21 19:01 2 3836 推荐指数:

查看详情

浅谈C语言函数返回值--局部变量局部变量地址

下面的内容是在C专家编程里面看到的,摘录于此。 在C语言中,局部变量的作用域只在函数内部,在函数返回后,局部变量的内存就会被释放。如果函数只是返回局部变量,那么这个局部变量会被复制一份传回被调用处。但是如果函数返回的是局部变量的地址,那么就会报错,因为函数只是把指针复制后返回了,但是指针指向 ...

Mon Aug 03 02:42:00 CST 2020 0 598
局部变量作为函数返回值

char *strA() {   char str[] = "hello word";   return str; } 上述程序有什么问题? 简单的来说,str是个局部变量的地址,作为返回值,有可能被提前回收。 那么局部变量可以作为函数的返回值吗,这个问题不能一概而论。局部变量 ...

Sun Mar 11 07:01:00 CST 2018 0 1037
函数的局部变量用作函数返回值

函数的局部变量用作返回值时,会生成一个局部变量的拷贝用作返回值,之后局部变量会被系统回收,函数不能返回局部变量的地址,因为如果返回局部变量的地址,系统回收后,指针指向的内容就无意义了,但是对于静态变量也可以返回其指针。 #include "stdio.h" int ...

Tue Feb 07 07:15:00 CST 2012 0 4081
C#7.0--引用返回值和引用局部变量

  一、在C#7.0以上版本中,方法的返回值可以通过关键字ref指定为返回变量的引用(而不是)给调用方,这称为引用返回值(Reference Return Value,或ref returns);  1.与引用参数一样,使用关键字ref声明引用返回值:   2.使用引用返回值 ...

Wed Jan 23 23:30:00 CST 2019 1 2070
Python函数之返回值、作用域和局部变量

一、函数返回值   说到返回值,相信大家肯定都认识,没错,就是return。   所谓返回值可以这样理解:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回。   那具体怎么用呢?接着往下看:   注意:   1、函数在执行过程中只要遇到 ...

Mon Feb 05 08:55:00 CST 2018 0 1929
C++函数返回局部变量

目录 1. 不可返回局部变量 1.1 函数不能返回指向栈内存的指针 2 可返回局部变量 2.1 返回局部变量本身 2.2 常量 2.3 静态局部变量 2.4 堆内存中的局部变量 2.5 返回值 ...

Tue Apr 14 23:44:00 CST 2020 0 652
C++函数返回局部变量

函数不能返回指向栈内存的指针 原因:返回值是拷贝局部变量的作用域为函数内部,函数执行结束,栈上的局部变量会销毁,内存释放。 可返回局部变量: 1. 返回局部变量本身 View Code 2.常量 ...

Wed Jul 05 01:42:00 CST 2017 0 5411
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM