1 for (A;B;C) D;
2 //等价于
3 {
4 A;
5 while (1) {
6 if (!(B)) break;
7 D;
8 C;
9 }
10 }
for(;i;i--)这是什么?
1、这样的写法,一般i在for之前有正确的初始值;
2、i--表示每次循环之后,i的值减一;
3、i表示如果i的值为0则结束该for循环。
1 #include <stdio.h>
2 #include <string.h>
3 #include <conio.h>
4 FILE *fi,*fo;
5 int i;
6 int main(int argc,char **argv) {
7 if (argc<3) {
8 printf("Usage:%s src des\n",argv[0]);
9 return 1;
10 }
11 if (0==stricmp(argv[1],argv[2])) {
12 printf("Src and des is same!\n");
13 return 2;
14 }
15 fo=fopen(argv[2],"wb");
16 if (NULL==fo) {
17 printf("Can not create file %s\n",argv[2]);
18 return 3;
19 }
20 fi=fopen(argv[1],"rb");
21 if (NULL==fi) {
22 fclose(fo);
23 printf("Can not find file %s\n",argv[1]);
24 return 4;
25 }
26 i=0;
27 fseek(fi,-1L,SEEK_END);
28 while (1) {
29 fputc(fgetc(fi)^0x5A,fo);
30 i++;
31 if (i%1000000==0) cprintf("\r%dKB",i/1000);
32 if (fseek(fi,-2,SEEK_CUR)) break;
33 }
34 fclose(fi);
35 fclose(fo);
36 cprintf("\r%dKB OK.\r\n",i/1000);
37 return 0;
38 }