不能在 C 中类型转换为 int;错误:int 之前的预期表达式


int arr5[8]={10,20,30,40,50,60,70,80};
len=8;
int beg=0,mid,end=len-1,loc;
mid=int((beg+end)/2);
printf("%d",mid);

我试图编写二进制搜索代码,但无法将(beg+end)/2的值类型转换为mid。

error: expected expression before 'int'
mid=int((beg+end)/2);
^~~

对于在语句中使用类型说明符int的初学者

mid=int((beg+end)/2);

没有意义

写 就足够了
mid=(beg+end)/2;

由于赋值右侧表达式中的所有操作数都是int类型,因此求值的类型也为int

那么在C中你必须写

mid= ( int )((beg+end)/2);

相关内容

  • 没有找到相关文章

最新更新