社区
C语言
帖子详情
分析一下结果
漁_夫
2010-08-20 07:54:33
static int j;
void fun1(void)
{
static int i = 0;
i ++;
}
void fun2(void)
{
j = 0;
j++;
}
int main()
{
int k;
for(k=0; k<10; k++)
{
fun1();
fun2();
}
return 0;
}
i,j结果?原因?
...全文
175
11
打赏
收藏
分析一下结果
static int j; void fun1(void) { static int i = 0; i ++; } void fun2(void) { j = 0; j++; } int main() { int k; for(k=0; k<10; k++) { fun1(); fun2(); } return 0; } i,j结果?原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovestefanie
2010-08-24
打赏
举报
回复
[Quote=引用 10 楼 damon1118 的回复:]
i = 10
j = 1
1.因为i是static类型,在固定地址上的分配,这意味着对象是在一个特殊的静态区域上创建的,而不是每次函数调用的时候在堆栈上动态创建的,所以只初始化一次,且在fun1中可见,即可进行修改,每次的修改都会覆盖原来的数据,所有程序结束static i才释放内存。
2.而i是auto的每次在函数fun1调用的时候才会给i分配……
[/Quote]
+1
damon1118
2010-08-24
打赏
举报
回复
i = 10
j = 1
1.因为i是static类型,在固定地址上的分配,这意味着对象是在一个特殊的静态区域上创建的,而不是每次函数调用的时候在堆栈上动态创建的,所以只初始化一次,且在fun1中可见,即可进行修改,每次的修改都会覆盖原来的数据,所有程序结束static i才释放内存。
2.而i是auto的每次在函数fun1调用的时候才会给i分配内存,再进行初始化,fun1中所有东西的生命周期结就是函数被调用的过程,当fun1调用结束,分配给fun1的所有内存全部释放,此时就没有fun1和它内部的的i了。
svtanto
2010-08-23
打赏
举报
回复
i = 10
j = 1
static int j;
声明j是个全局变量,但是对本文件以外是不可见的
static int i = 0;
声明i是个局部变量,但是是static的,第一次调用时候执行i=0,以后就不再执行i=0,每次只执行i++,也就是说:
1、初始化只能在定义的同时完成
2、初始化代码只在第一次进入函数时候运行一次,以后不再运行
眼睛猥琐男
2010-08-23
打赏
举报
回复
而fun2中 j = 0;不是初始化操作, for循环每次都把它执行一次。 两函数差别就在这里。
眼睛猥琐男
2010-08-23
打赏
举报
回复
很明显是10 和 1;
主要的一个点就是:静态变量仅被初始化一次!即fun1中 static int i = 0; 仅执行一次。
这样楼主应该好理解一点。
东大坡居士
2010-08-20
打赏
举报
回复
应该是i=10,J=1
njhsliliangx
2010-08-20
打赏
举报
回复
类似问题。可以自己把CODE在实际的运行一下。注意:加些输出信息。就知道多少,也会发现结果的原由
c4185
2010-08-20
打赏
举报
回复
i=10,j=1吧,是我搞反了?
wing_0706
2010-08-20
打赏
举报
回复
void fun2(void)
{
j = 0;
j++;
}
-----------
调用一次这个函数 就赋值成0 再 加加 所以 一直为 1
i就不一样了。。 那个不是赋值操作 那句初始化只 执行一次
wing_0706
2010-08-20
打赏
举报
回复
#include <stdio.h>
static int j; //这是全局的静态变量 默认初始为0吧
void fun1(void)
{
static int i = 0; //这是局部的静态变量 初始为0只在函数第一次调用时 初始为0 以后就不管这句了
i ++;
}
void fun2(void)
{
j = 0;
j++;
}
int main()
{
int k;
for(k=0; k<10; k++)
{
fun1();
fun2();
}
return 0;
}
wing_0706
2010-08-20
打赏
举报
回复
j 是 1
i 是 10
静态变量只初始化一次啊
结果
分析
工具
加法器的优化
线性回归,结果预测,结果
分析
回归
分析
是来自统计学的一个概念,它是一种预测性的建模技术,主要研究自变量和因变量之间的关系。通常使用线/曲线来拟合数据点,然后研究如何使曲线到数据点的距离差异最小。例如下图中将数据点拟合一条曲线:回归
分析
的目标就是要拟合一条曲线,让数据点到拟合曲线的距离加起来的和是最小的。通俗举个例子,找一根线,拉
一下
就是线性。
LR 结果
分析
2.3 LoadRunner
分析
测试结果要查找系统瓶颈,就必须
分析
LoadRunner获取的性能指标数据。在LoadRunner场景运行的同时我们获取了大量的数据,可以根据以下几种方式
分析
这些数据: 1.查看Vuser Log文件,这些文件包括了场景运行过程中每个用户的跟踪数据,Vuser Log文件一般放在脚本目录中; 2.在控制台的输出窗口查看场景的执行过程信息; 3.使用Analysis模块
LoadRunner结果
分析
[12] JMeter-结果
分析
之图形图表
1 前言 书接上回,前两篇文章分别介绍了Jmeter结果
分析
中最常用的两个元件---“查看结果树”和“聚合报告”,今天继续分享其它的图表图形类
分析
元件。 2 Jmeter结果
分析
之各种图表 一、Aggregate Graph聚合图表 The Aggregate Graph listener is used to display the test results...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章