十万火急!一个优化代码的问题,数组的~~
呵呵,其实也没那么急。。。JUST 4 FUN~~题目:有7个数存放在一个数组中,从键盘输入1个整数,查找这个数是否在一个已经确定元素的整数数组中,如果在,输出其下标,如果不在,输出0
书上写道3种方法,其中第3个方法与第2个方法的比较没看懂~
第二种方法的思路(只是部分代码):
scanf("%d",&x);
for(i=n;i>=1;i--)
if(a[i]==x)
break;
printf("%d\n",i);
第三种方法的思路(部分代码):
scanf("%d",&x);
a[0]=x;
for(i=n;a[i]!=x;i--);
printf("%d\n",i);
没懂的地方就在:书上写道“第三种方法先将a[0]的值赋为x,其目的是免去在查找过程中每一步都要检测数组是否越界的问题,可以提高效率”
我的问题就是:
检查是否越界是通过写代码实现的还是程序在运行时自己就会检查?如果是写代码实现的,那么第三种方法的a[i]!=x不就没有检查越界吗?
如果按照书上的说法,那第三种方法是怎么实现不检查越界的呢?