【问题标题】:Array pointer to find largest number查找最大数的数组指针
【发布时间】:2019-03-01 20:21:08
【问题描述】:
#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个数字并找出其中最大的数字,如上面的代码所示?

【问题讨论】:

    标签: c arrays pointers


    【解决方案1】:

    是的,它会起作用,尽管对数组元素使用括号表示法可能会被认为更具可读性。您还只需为 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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-28
        相关资源
        最近更新 更多