Есть ли у C ссылки? - PullRequest
       4

Есть ли у C ссылки?

23 голосов
/ 29 ноября 2010

Есть ли у C ссылки?то есть как в C ++:

void foo(int &i)

Ответы [ 2 ]

40 голосов
/ 29 ноября 2010

Нет, это не так.У него есть указатели , но они не совсем одно и то же.

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

void foo(int *x)
{
    *x = 10;
}

...

int y = 0;
foo(&y); // Pass the pointer by value
// The value of y is now 10

Подробнее о различиях между указателями и ссылками см. этот вопрос SO .(И, пожалуйста, не спрашивайте меня, так как я не программист на C или C ++:)

16 голосов
/ 29 ноября 2010

Концептуально, C имеет ссылки, так как указатели ссылаются на другие объекты.

Синтаксически, C не имеет ссылок, как C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...