社区
C++ 语言
帖子详情
函数中的静态局部变量可以在函数外使用吗?如果可以,怎样使用?
iwillalwaysloveyou
2006-05-07 12:52:29
如题!
...全文
2684
20
打赏
收藏
函数中的静态局部变量可以在函数外使用吗?如果可以,怎样使用?
如题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenhu_doc
2006-05-08
打赏
举报
回复
修正二楼的程序:
const int constInt = 1; -------> static int constInt = 1;
在我昨天去上自习,突然怎么想起来了static,const。。。。。 还有。。。。
不好,这个回复有点错误,今天上午自习的时候,有提醒了自己,一定要回来修正一下//
阿弥托佛... 罪过罪过。。。
sxhnag820
2006-05-08
打赏
举报
回复
学习中................
yleiou
2006-05-08
打赏
举报
回复
只知道不可以在函数外部使用静态局部变量 没有想到原来可以变脸
navi_dx
2006-05-08
打赏
举报
回复
返回一个地址或引用就可以在外面使用了,看看设计模式里的单件
fengyg7924
2006-05-08
打赏
举报
回复
静态局部变量 一般只在函数内使用,即便通过引用或指针在外部使用,那样也会破怀程序得可读性,看起来费解XXXX
lxfxw
2006-05-08
打赏
举报
回复
只能在函数内使用!
Tycool
2006-05-08
打赏
举报
回复
好,不用俺总结了。呵呵
同意:fengyg7924(牛虻)
静态局部变量 一般只在函数内使用,即便通过引用或指针在外部使用,那样也会破怀程序得可读性,看起来费解XXXX
weiliems
2006-05-08
打赏
举报
回复
函数中的静态局部变量可以在函数外使用吗?如果可以,怎样使用?
这个题目其实很怪异,
静态变量 表示在程序生存期会被保留下来到下次修改这个变量 有相当于全局变量的意义 ;
局部变量 表示在程序生存期会随着定义的作用域而消亡的变量 通常都是过度变量;
两者放在一起 感觉上很突兀,文字游戏。
在一个会消亡的局域中使得一个变量在下次再进入这个局域时还有效,一般不会用这种声明,也不知道哪个人给你考试这样一道题目
通常要在函数外使用一个变量 无非传引用和指针 用静态局部的我是没有看到过,可能见识少了点。嘎嘎,见笑了!
king_water
2006-05-07
打赏
举报
回复
绝对不
gjianpro
2006-05-07
打赏
举报
回复
局部变量只能够在它的作用域范围内有效,出了此范围就不能够使用此变量名访问了
iwillalwaysloveyou
2006-05-07
打赏
举报
回复
返回引用或指针的发法,可能符合他们的要求,我当时没想到,衰-_-
iwillalwaysloveyou
2006-05-07
打赏
举报
回复
这是一家公司的面试题
iwillalwaysloveyou
2006-05-07
打赏
举报
回复
知我者 yhmhappy2006也
塘外人
2006-05-07
打赏
举报
回复
我想楼主的意思是直接通过那个变量名来访问,
那自然是行不通 的
sharpdew
2006-05-07
打赏
举报
回复
作为引用返回是常用的,如要让某个函数表达式可以表示l值,经常这样:
fun() = 5;
houdy
2006-05-07
打赏
举报
回复
函数中最好不要使用静态局部变量,因为这样的函数是"不可重入的(non-reentrant)",在多线程编程中就傻眼了。
lyskyly
2006-05-07
打赏
举报
回复
可以返回一个指针,这样就能改变它的值了
int* fun()
{
static int i = 10;
cout<<i<<endl;
return &i;
}
int main()
{
int * pa = fun();
(*pa)++;
fun();
}
输出
10
11
sankt
2006-05-07
打赏
举报
回复
1
可以将它作为返回值,这样就可以在外面使用了
与局部变量的区别在于: 在函数退出时, 这个变量始终存在,静态局部变量延长了局部变量的生命周期. 但不能被其它 函数使用, 当再次进入该函数时, 将保存上次的结果。其它的特点与局部变量一样。
september___29
2006-05-07
打赏
举报
回复
可以在函数外头使用,返回
int& fun(void){
static int returnStaticInt;
return returnStaticInt;
}
这样就OK
chenhu_doc
2006-05-07
打赏
举报
回复
函数中的静态局部变量可以在函数外使用吗?
静态局部变量 ////局部?? 在外面使用??? 矛盾得太矛盾。。。。
可能是这样的一个误区:
#include "stdio.h"
int fun()
{
const int constInt = 1;
return ++constInt;
}
void main()
{
int num ;
while(num != 10)
printf("%d\n",fun());
}
MySQL
函数
、用户自定义
函数
Re: MySQL
函数
、用户自定义
函数
==============================# MySQL
函数
的意义 MySQL 自身提供大量功能强大、方便易用的
函数
。
使用
这些
函数
,可以极大地提高用户对数据库的管理效率。 #
函数
的分类 # 用户自定义
函数
我们学习了 MySQL 的系统内置的
函数
之后,如果系统内置的
函数
不能满足我们的应用,可以创建存储
函数
。-------------------------------
关于
静态
局部变量
与
静态
外
部变量
静态
局部变量
特点:static int a; 1:
静态
局部变量
存储在
静态
存储区,如果赋有初值,
函数
调用期间只赋值一次,下次调用该
函数
时,
静态
局部变量
值为上次调用之后的结果,原因:
静态
局部变量
在
函数
调用期间是不释放的;而自动变量在每次调用
函数
时都会重新执行赋值语句,原因:每次
函数
调用完毕之后,自动变量都会被释放; 2:
静态
局部变量
若开始未赋初值,编译时自动赋初值0或者‘\0’;而自动变量则为不确
静态
函数
、全局
函数
,
静态
变量、
局部变量
、全局变量的作用域,生命周期,以及内存
中
的存储位置(C/C++):
局部变量
:
局部变量
也叫auto自动变量(auto可写可不写),一般情况下代码块{ }内部定义的变量都是自动变量,有如下特点: 在一个
函数
内定义,只在
函数
范围内有效; 在复合语句
中
定义,只在复合语句
中
有效; 随着
函数
调用的结束或复合语句的结束
局部变量
的的声明周期也结束; 如果没有赋值,内容随机。
静态
局部变量
: 在变量前面加上static关键字就是
静态
局部变量
,有以下特点: static
局部变量
的作用域也是在定义的
函数
内部有效; static
局部变量
的生命周期和程序运行周期一样; .
C语言基础入门48篇_44_
静态
局部变量
、
静态
全局变量、
静态
函数
(
静态
局部变量
只被初始化一次,保留变量值、
静态
全局变量是加了作用域的全局变量、
静态
函数
亦是加了作用域的
函数
)
静态
局部变量
、
静态
全局变量、
静态
函数
(
静态
局部变量
只被初始化一次,保留变量值、
静态
全局变量是加了作用域的全局变量、
静态
函数
亦是加了作用域的
函数
)
C++
中
的
静态
局部变量
1
静态
局部变量
在
静态
存储区内分配存储单元。在程序运行期间都不释放。 2 对
静态
局部变量
是在编译时赋初值的,即只赋值一次,在程序运行时它已有初值。以后每次调用
函数
时不再重新赋初值而只是保留上一次
函数
调用结束时的值。 3
静态
局部变量
,如果定义的时候没有赋初值,编译时自动赋初值0或者空字符。 4
静态
局部变量
在
函数
调用结束后仍然存在,但其他
函数
不能引用它,在其他
函数
中
,它是"不可见"的...
C++ 语言
64,636
社区成员
250,540
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章