[c/c++/数据结构/查找]请问这里for循环的两种代码可以实现相同的目的吗?

在数组中查找一个元素值k,返回对应数组下标i
(k一定存在于数组中)
len是数组最大有效长度

for(i=len;;i--)
{
if(a[i]==k) break;
  }
return i;
for(i=len;a[i]!=k;i--);
return i;

效果相同,都会崩溃
i起始值 应该改为 i=len-1
改为len-1后,效果相同