#include<stdio.h>
#include<stdlib.h>
#define L 10
void main()
{
int a[L], *p = a, flag;
for (; p < a + 10; p++)
{
scanf_s("%d", p);
}
printf("%d\n", p);\\值得注意的是p指向的地址现在是a+10(已经无实际意义了),而不是a+9
printf("请输入要查找的数字:");
scanf_s("%d", &flag);
for (int i = 11; p >= a; p--, --i)//不便于今后修改,别人阅读
{
printf("%d\n", *p);
if (*p == flag)
{
printf("您查找的是第%d个数。\n", i);
break;
}
else if (i == 1)
{
printf("NOT FOUND!\n");
}
}
printf("%d\n", a[8]);
printf("%d\n", *p);
system("pause");
}
修改后:
#include<stdio.h>
#include<stdlib.h>
#define L 10
void main()
{
int a[L], *p = a, flag, count;
for (; p < a + 10; p++)
{
scanf_s("%d", p);
}
printf("%d\n", p);
printf("请输入要查找的数字:");
scanf_s("%d", &flag);
for (p = a, count = 1; p < a + 10; p++, count++)//重新让p指向a,便于理解阅读
{
printf("%d\n", *p);
if (*p == flag)
{
printf("您查找的是第%d个数。\n", count);
break;
}
else if (count == 10)
{
printf("NOT FOUND!\n");
}
}
printf("%d\n", a[8]);
printf("%d\n", *p);
system("pause");
}
总结:对for循环有了更深的认识。