33,311
社区成员
发帖
与我相关
我的任务
分享
main( )
{
int x,y,z;
x=y=2;z=3;
y=x++-1;printf("%d\t%d\t",x,y); /*x=3,y=1,后置++,先把x赋值给y,再做运算,而x的值无论是前还是后置都加1*/
y=++x-1;printf("%d\t%d\t",x,y);/*x=4,y=3,前置++,先把x加1后赋值给y,然后做运算(此行x初值是上行的终值=3)*/
y=z--+1;printf("%d\t%d\t",z,y); /*z=2,y=4,同上理可知*/
y=--z+1;printf("%d\t%d\t",z,y); /*z=1,y=2,同理可证*/
getch(); }
#include <iostream>
#include <string>
using namespace std;
void test()
{
int j;
for (int i = 0; i < 10; ++i)
j = i;
for (int i = 0; i < 10; i++)
j = i;
}
int main()
{
test();
return 0;
}
004013D0 push ebp
004013D1 mov ebp,esp
004013D3 sub esp,0x10
004013D6 mov DWORD PTR [ebp-0x8],0x0
004013DD jmp 0x4013e9 <test()+25>
004013DF mov eax,DWORD PTR [ebp-0x8]
004013E2 mov DWORD PTR [ebp-0xc],eax
004013E5 add DWORD PTR [ebp-0x8],0x1
004013E9 cmp DWORD PTR [ebp-0x8],0x9
004013ED setle al
004013F0 test al,al
004013F2 jne 0x4013df <test()+15>
004013F4 mov DWORD PTR [ebp-0x4],0x0
004013FB jmp 0x401407 <test()+55>
004013FD mov eax,DWORD PTR [ebp-0x4]
00401400 mov DWORD PTR [ebp-0xc],eax
00401403 add DWORD PTR [ebp-0x4],0x1
00401407 cmp DWORD PTR [ebp-0x4],0x9
0040140B setle al
0040140E test al,al
00401410 jne 0x4013fd <test()+45>
00401412 leave
00401413 ret