我从一本好书中得到这段代码,但我不明白为什么主函数中的变量与go_south_east函数中的变量不同,它们被当作相同的变量处理。

include <stdio.h>

void go_south_east (int *lat, int *lon)
{
    *lat = *lat - 1;
    *lon = *lon + 1;
}

main()
{
    int latitude = 32;
    int longitude = -64;
    go_south_east (&latitude, &longitude);
    printf("Avast! Now at: [%i, %i]\n", latitude, longitude);
    return 0;
}

依我看latitudelat是不同的变量。这同样适用于longitudelon。那么,C如何知道*lon*lat&longitude&latitude的引用。对我来说,在一个函数中应该是lon,在第二个函数中应该是lon。不是吗?

最佳答案

这是因为您将地址传递给lon并将lat传递给函数。签名中的第一个参数是int *lat。与您传递的第一个地址相对应,在您的情况下,latitiude

关于c - 示例中的变量语法不清楚,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22367236/

10-10 13:42