Передача параметра в функцию - код не компилируется - C (СИ)
Формулировка задачи:
Не могу скомпилить. Выдает ошибку. Вроде простейший пример, а не получается.
Ошибки такая
main_FUNC_ссылка.c:39:14: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token (на эту строку int fn (int &rnArg))
main_FUNC_ссылка.c: In function ‘main’:
main_FUNC_ссылка.c:56:3: warning: implicit declaration of function ‘fn’ [-Wimplicit-function-declaration]
компилятор gcc
int fn (int &rnArg) // принимаем в качестве аргумента указатель
{
rnArg =10; // присваиваем значению 10
return 1;
}
int main (int nNumberofArgs, char *pszArgs[]) // надо будет разобраться с аргументами
{
int n = 0; // присваиваем n 0
printf ("значение n = %d \n", n); // печатаем 0
fn (n); // в функцию передаем переменную n
printf ("значение n = %d \n", n); // печатаем, а теперь n равно 10
return 1;
}Решение задачи: «Передача параметра в функцию - код не компилируется»
textual
Листинг программы
int fn (int *rnArg) // принимаем в качестве аргумента указатель
{
*rnArg =10; // присваиваем значению 10
return 1;
}
int main (int nNumberofArgs, char *pszArgs[]) // надо будет разобраться с аргументами
{
int n = 0; // присваиваем n 0
printf ("значение n = %d \n", n); // печатаем 0
fn (&n); // в функцию передаем переменную n
printf ("значение n = %d \n", n); // печатаем, а теперь n равно 10
return 1;
}
Объяснение кода листинга программы
- Объявлена функция
fn, которая принимает в качестве аргумента указательrnArgна целое число и возвращает целочисленное значение 1. - Внутри функции
fnуказателюrnArgприсваивается значение 10. - В функции
mainобъявлены две переменные:nтипаintиpszArgsтипаchar *[]. - Переменная
nинициализируется значением 0. - Выводится значение переменной
nна экран. - Функция
fnвызывается с аргументом&n, гдеn- это переменная из функцииmain. - Выводится значение переменной
nна экран. Оно изменилось на 10. - Функция
mainвозвращает 1.