吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2563|回复: 10
收起左侧

[C&C++ 转载] 静态变量a的值

[复制链接]
lf774733240 发表于 2015-7-31 22:06
求详细过程
[C] 纯文本查看 复制代码
#include<stdio.h>
int a=2;  
int f(int n)
{
	static int a=3;        
	int t=0;
	if(n%2)
	{
		static int a=4;
		t+=a++;            
	}
	else
	{
		static int a=5;
		t+=a++;
	}
	return t+a++;
}
int main()
{
	int s=a,i;               
	for(i=0;i<3;i++)         
	{
		s+=f(i);
	}
	printf("%d\n",s);
	return 0;	
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lf774733240 发表于 2015-7-31 22:06
在线等!!!!!!!!!!!
菜鸡葫芦娃 发表于 2015-7-31 22:13
判断n除以2的余数是1还是0  是1的话a=4 是0的话a=5  循环到最后参数的值是2 2除以2余数为0  所以a=5
 楼主| lf774733240 发表于 2015-7-31 22:28
紧肛互撸娃M 发表于 2015-7-31 22:13
判断n除以2的余数是1还是0  是1的话a=4 是0的话a=5  循环到最后参数的值是2 2除以2余数为0  所以a=5

结果29是怎样来的
sunbeam_ 发表于 2015-8-2 00:17
从主函数中看 要求的是 2+f(0)+f(1)+f(2)
再看f(n)这个函数  里面有三个a   设第一个a 为 a ; 第二个a 为a1 ;第三个a 为a2
a1 和 a2 都只在其各自if分支里有效  所以最后返回值是第一个a
下面我们来计算 :
f(0):t+=a2++  ---->  t等于5,a2自增,a2等于6
return t+a++   ---->   返回t+a等于8(5+3) ,a自增 等于4
f(0)=8

f(1):

t+=a1++   ------> t等于4,a1自增, a1等于5
return t+a++   -----> 返回t+a等于8(4+4),a自增 等于5
f(1)=8

f(2):
t+=a2++   ------->  t等于6 ,a2自增
return t+a++   ----->  返回t+a等于11(6+5)

所以等于 2 + 8 + 8 + 11 = 29

免费评分

参与人数 1热心值 +1 收起 理由
lf774733240 + 1 ++不是比+=的优先级更高吗?比如f(0),先a2.

查看全部评分

FantasyOwl 发表于 2015-8-2 00:28 来自手机
大神们在说啥呢??怎么我一个字也看不懂
魔术使nqy 发表于 2015-8-2 08:27 来自手机
卧槽,我跟楼上的一样,什么都不懂-_-#
kelamoyujuzhen 发表于 2015-8-2 09:00
好复杂,刚学C语言,看不懂
 楼主| lf774733240 发表于 2015-8-2 09:37
sunbeam_ 发表于 2015-8-2 00:17
从主函数中看 要求的是 2+f(0)+f(1)+f(2)
再看f(n)这个函数  里面有三个a   设第一个a 为 a ; 第二个a 为 ...

++不是比+=的优先级更高吗?比如f(0),先a2自增,为6,然后t=t+(a++),t=0+6=6 吗?
sunbeam_ 发表于 2015-8-2 10:46 来自手机
lf774733240 发表于 2015-8-2 09:37
++不是比+=的优先级更高吗?比如f(0),先a2自增,为6,然后t=t+(a++),t=0+6=6 吗?

确实是优先级更高,但你要分清楚 a++ 和 ++a
a++是先代入计算再自增
++a是先自增再代入计算
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-13 03:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表