i=0是一个赋值语句,就是把0赋值给变量i;
i==0是一个表达式,就是判断i的值是否等于0
#include <stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int k=0;
int sz = sizeof(arr)/sizeof (arr[0]);
int flag = 0;
int left = 0;
int right = sz - 1;
while(left<=right)
{
int mid =left +(right-left)/2;
if (arr[mid]<k)
{
left =mid + 1;
}
else if (arr[mid]>k)
{
right = mid -1;
}
else
{
flag = 1;
printf("找到了,下标是%d\n",mid);
break;
}
}
if(flag==0)
printf("找不到了");
reutrn 0;
}
这里我们可以注意到flag在赋值上的变化。
flag=1是对flag赋值为1。
而flag==0是判断flag的值是否为0,如果为0,则执行下一条语句。