C: обмен двух значений указателя - PullRequest
0 голосов
/ 21 ноября 2018

Я хотел бы поменять местами значение 2 целых чисел с помощью указателей.

void swap(int *a, int *b)
{
    int *temp;
    temp = &a;

    *a = *b;
    *b = *temp;
}

почему это не работает?

ошибка дана:

incompatible pointer types initializing 'int *' with an expression of type 'int **'

1 Ответ

0 голосов
/ 21 ноября 2018

temp - указатель.То, что вы хотите, это int, чтобы принять значение того, на что указывает a.Вам нужно изменить temp на int.

void swap(int *a, int *b)
{
    int temp;
    temp = *a;

    *a = *b;
    *b = *temp;
}

Возможно, вы захотите следовать нескольким учебникам на C, чтобы понять, как работают указатели.В ответе о переполнении стека есть много объяснений с помощью множества ресурсов, доступных онлайн и в книгах.

...