Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > не работают ссылки в VC++ 6.0


Автор: toshkaexe 26.9.2007, 10:49
набрал простейшую программу в visual С++ версия 6. но почему-то ругается компиллятор на использование ссылок в коде. в чем проблема?подскажте плиз. заранее спасибо!
Код

#include <stdio.h>
void fun(int &i,int &j);



void fun(int &i, int &j)
{
    i=34;
    //j++;
    j=10000+i;

}

int main ()
{
int i=5;
int j=10;
fun(i,j);
printf(" i = %d \n", i);
printf(" j = %d \n", j);

return 1;}

вот ругань компиллятора 
error C2143: syntax error : missing '{' before '&'
error C2059: syntax error : '&'
error C2059: syntax error : ')'
 error C2059: syntax error : ')'
...

Автор: archimed7592 26.9.2007, 10:58
Цитата(toshkaexe @  26.9.2007,  10:49 Найти цитируемый пост)
но почему-то ругается компиллятор на использование ссылок в коде. в чем проблема?

А файлик имеет расширение .c или .cpp?
Проблема скорее всего в этом(ну или в настройках проекта/компилятора/в компиляторе).

Автор: toshkaexe 26.9.2007, 10:59
.c

Автор: archimed7592 26.9.2007, 11:01
Меняй на .cpp и будет тебе счастье(в языке Си[.c] ссылок нет - они появились только в Си++[.cpp]).

Автор: FiMa1 26.9.2007, 11:07
Цитата(toshkaexe @ 26.9.2007,  10:59)
.c

В си нет ссылок...

Автор: toshkaexe 26.9.2007, 11:27
я не могу поменять:( не подскажете как можно в си без ссылок. я догадываюсь, что через указатели... но не могу нигде найти примера для моего случая... мне нужно чтобы при взове функции поменялись значения параметров функции, см мой код выше. а тип у функии void  должен быть..заранее спасибо за помощь

Автор: FiMa1 26.9.2007, 11:32
Код

#include <stdio.h>

void swap(int *const i, int *const j)
{
    int tmp = *i;
    *i = *j;
    *j = tmp;
}

int main()
{
    int i = 5;
    int j = 10;
    swap(&i, &j);
    printf(" i = %d \n", i);
    printf(" j = %d \n", j);

    return 0;
}

Кстати, а почему у тебя код завершения программы единица?
Адрес, на который указывает ссылка, изменить нельзя, т.о. в этом плане ссылку можно считать некоторым синонимом константого указателя. Тем не менее это не одно и тоже, подробности, если они необходимы, посмотри в любом руководстве по Си++.

Автор: toshkaexe 26.9.2007, 11:38
о, мегаспасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)