关于i++问题?
void main(){
int i=5,j=5,p,q;
p=(++i)+(++i)+(++i);
q=(j++)+(j++)+(j++);
printf("%d,%d,%d,%d\n",i,j,p,q);
}
为什么p会等于22,不是应该等于21的吗??
{:1_1:}这个问题不同编译器会有不同的算法 p=22 是因为编译器 先取了前两个的值
p=(++i)+(++i)+(++i) = 7+7+8 = 22
第一次 i =6
第二次 i =7
第三次 i =8
但执行第一个加号时编译器是以 7+7 = 14 来算的
LZ 不懂的话 可以反汇编一下
乱闯 发表于 2013-11-10 10:44 static/image/common/back.gif
这个问题不同编译器会有不同的算法 p=22 是因为编译器 先取了前两个的值
p=(++i)+(++i)+(++i)...
十分感谢! 乱闯 发表于 2013-11-10 10:44 static/image/common/back.gif
这个问题不同编译器会有不同的算法 p=22 是因为编译器 先取了前两个的值
p=(++i)+(++i)+(++i)...
反汇编怎么编,谢谢! 飞驰吧!少年 发表于 2013-11-10 12:31 static/image/common/back.gif
反汇编怎么编,谢谢!
{:1_1:}小甲鱼视频《零基础入门C语言》中间有反汇编操作的 LZ看了吗? 小甲鱼视频《零基础入门C语言》 百度网盘 乱闯 发表于 2013-11-10 13:51 static/image/common/back.gif
小甲鱼视频《零基础入门C语言》中间有反汇编操作的 LZ看了吗?
反汇编是汇编的课程吧,我还不懂汇编 飞驰吧!少年 发表于 2013-11-10 15:30 static/image/common/back.gif
反汇编是汇编的课程吧,我还不懂汇编
不全是,但是不懂汇编,那反汇编就不好搞了,那把C学完,(边学C边接触点汇编也是可以的)就学学汇编吧,当然得看LZ自己的发展意向了 乱闯 发表于 2013-11-10 16:18 static/image/common/back.gif
不全是,但是不懂汇编,那反汇编就不好搞了,那把C学完,(边学C边接触点汇编也是可以的)就学学汇编吧, ...
嗯,知道了,谢谢! 各种编译器的结果不同。要学怎么防御首先就要知道怎么攻击,要学反汇编首先得看得懂汇编。 我也懂了:lol::big{:1_1:} 懂汇编的话,直接看看就明白了
页:
[1]