我从一本好书中得到这段代码,但我不明白为什么主函数中的变量与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;
}
依我看
latitude
和lat
是不同的变量。这同样适用于longitude
和lon
。那么,C如何知道*lon
,*lat
是&longitude
,&latitude
的引用。对我来说,在一个函数中应该是lon
,在第二个函数中应该是lon
。不是吗? 最佳答案
这是因为您将地址传递给lon
并将lat
传递给函数。签名中的第一个参数是int *lat
。与您传递的第一个地址相对应,在您的情况下,latitiude
。
关于c - 示例中的变量语法不清楚,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22367236/