#include <stdio.h>
#include <stdlib.h>
int main()
{
int *a= malloc(sizeof(int)*10);
scanf("%d %d",a,a+1);
if(*a<*(a+1))
{
*a=*(a+1);
}
printf("%d",*a);
return 0;
}
是否可以使用相同的数组指针输入2个数字并在其中找到最大的数字,如上面的代码所示?
答案 0 :(得分:0)
是的,它可以工作,尽管将括号表示法用于数组元素可能会更容易理解。您还只需为2个元素分配空间。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *a = malloc(sizeof(int) * 2);
scanf("%d %d", &a[0], &a[1]);
if(a[0] < a[1])
{
a[0] = a[1];
}
printf("%d", a[0]);
return 0;
}
答案 1 :(得分:0)
是的,可以。因为当您说*a
时,您指向数组的第0个位置并在那里获取值;而当您说*(a+1)
时,您则指向数组的第1个位置。与&a
和&(a+1)
相似。