有一个奇怪的问题,我已经看了一百多万次,但我认为我的头脑正在弄乱我,只是我在Head First C书中关注的一个简单的短问题,我得到一个代币或“( “当我尝试编译和运行时出现错误”{}错误。找不到位置?
它在第5行说我想但是,有人告诉我这是什么问题?我知道这很简单,但是我的大脑正在弄乱我!
代码:
#include <stdio.h>
#include <stdlib.h>
void go_south_east(int lat, int lon);
{
lat = lat - 1;
lon = lon + 1;
}
int main()
{
int latitude = 32;
int longitude = -64;
go_south_east(latitude, longitude);
printf("Avast! Now at: [%i, %i]\n", latitude, longitude);
return 0;
}
是的我知道它有一个问题,它不会指向正确的位置,一旦运行它的值不会改变,但这只是想法,学习指针,这是第一个任务,但我无法得到这件作品:(
谢谢你们,你们是最棒的!
答案 0 :(得分:1)
您有额外的;
void go_south_east(int lat, int lon);
^ remove
它应该是:
void go_south_east(int lat, int lon)
{ // ^ removed
lat = lat - 1;
lon = lon + 1;
}
答案 1 :(得分:1)
C仍然是一种按值传递的语言。如果您希望函数能够修改其参数,则必须将指针传递给它们:
void foo(int *p)
{
++*p;
}
(另请注意使用++
增量运算符,这样写会增量和减量是惯用的,lat = lat - 1;
被认为是多余的冗长。)
(当然,更不用说语法错误,甚至不允许你的代码编译......)
答案 2 :(得分:0)
您的代码中存在两个问题:
1) void go_south_east(int lat,int lon); 最后从上面的行中删除分号。
2)您只将变量值传递给函数。
对代码中存在的函数内的变量值所做的更改不会反映在调用函数
中