找不到错误,简单但卡住了

时间:2013-07-27 08:43:46

标签: c

有一个奇怪的问题,我已经看了一百多万次,但我认为我的头脑正在弄乱我,只是我在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;
}

是的我知道它有一个问题,它不会指向正确的位置,一旦运行它的值不会改变,但这只是想法,学习指针,这是第一个任务,但我无法得到这件作品:(

谢谢你们,你们是最棒的!

3 个答案:

答案 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)您只将变量值传递给函数。

对代码中存在的函数内的变量值所做的更改不会反映在调用函数