社区
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结果?原因?
...全文
157
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
作业
写回复
配置赞助广告
用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
静态变量只初始化一次啊
方差
分析
过程&结果解读
有必要再多费点口舌,解释
一下
以上描述。通俗一点,方差
分析
就是指
分析
单因素的变化给总体带来的变化和波动是否显著的过程。而总体的变化和波动是通过方差、标准差来度量的,问题也就转化为研究单因素的加入,样本...
spss相关性
分析
看结果_SPSS篇—相关性
分析
昨天跟大家探讨了如何使用SPSS进行方差
分析
,知道了方差
分析
的原理以及最后的结果如何解读。今天跟大家来分享的是另外一种比较常见的
分析
—相关性
分析
。相关
分析
是研究两个或两个以上处于同等地位的随机变量间的相关...
excel回归
分析
结果解读
如果你的excel中没有数据
分析
这一选项,需要设置
一下
方法:文件-选项-加载项-勾选数据
分析
) 根据需要进行相关勾选设置 运算后一共出现三个表格,我们逐一来看 第一个表格-回归统计: 其中, Multiple...
spss相关性
分析
看结果_spss相关性
分析
首先解释
一下
相关系数,相关系数反应的是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,正值表示正相关,负值表示负相关,绝对值越大表示相关性越强。具体spss做法如下:
分析
-相关-双变量选择需要进行相关...
spss因子
分析
结果解读_SPSS进行问卷量表信度检验(详细操作过程及结果
分析
)——【杏花开生物医药统计】...
没有维度划分的问卷做探索因子
分析
,可以详细查看:《AMOS进行问卷
分析
中效度
分析
之验证因子
分析
教程》《SPSS中对问卷数据进行探索因子
分析
的详细操作与结果解读》 信度检验是指问卷的信度也就是问卷的可靠性,指...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章