不理解for循环的那部分求解答


#include<stdio.h>
#define MAX 1024

int main()
{
 char str1[MAX];
 char str2[MAX];
 int i =0;
 unsigned int n ;

 printf("请输入第一个字符串:");
 while((str1[i++] =getchar()) !='\n')
// str1[i++] =getchar();

 printf("请输入第二个字符串:");
 i=0;
 while((str2[i++] =getchar()) !='\n')
// str2[i++] =getchar();

 printf("请输入比较的字符数:");
 scanf("%u",&n);


 for(i=0;i<n;i++){
  if(str1[i] -str2[i]){
   i++;
   break;
  }
 }

 printf("比较的结果是%d \n",str1[i-1]-str2[i-1]);

return 0;
}

就是比较前n个字符啊,如果不相等则跳出循环
i++的目的是为了与最后遍历完所有n个字符后,i还会执行i++保持一致。使得printf时的i-1就是最后一个进行比较的字符的下标。这两个字符如果想等,那么字符串比较结果就是0,表示相同,否则不是0,表示不完全相同

if(str1[i] -str2[i]){
等价于
if(str1[i] -str2[i]!=0){