数组指针查找最大数

时间:2019-03-01 20:21:09

标签: c arrays pointers

#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个数字并在其中找到最大的数字,如上面的代码所示?

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;
}

Read more about pointers and how they work

答案 1 :(得分:0)

是的,可以。因为当您说*a时,您指向数组的第0个位置并在那里获取值;而当您说*(a+1)时,您则指向数组的第1个位置。与&a&(a+1)相似。