У меня есть программа на C++, как это:C++ разности C & *
typedef struct _nodo
{
...
} node;
void cuenta(node& *Lista, char c);
Когда я компилирую Don `T показать какую-либо ошибку. Теперь, когда я хочу использовать этот код для программы C, компилятор показать сообщение об ошибке:
error: expected ')'
void cuenta(node* &Lista, char c);
Что его разница между &
и *
в C++ и C?
Я был бы удивлен, если бы этот вопрос не задавался раньше. Короче говоря, '&' в списке аргументов - это функция C++ (ссылки), которая просто отсутствует в C. То, что вы показываете, является допустимым C++, но недействительным C. Вам нужно использовать '*' вместо ' & 'и отредактируйте синтаксис для всех применений параметра в теле функции и убедитесь, что вы вызываете функцию с помощью' & var' вместо просто 'var'. Таким образом, C++ синтаксически более удобен. –
Читайте: [и звездочка и амперсанд в параметре C++] (http://stackoverflow.com/questions/14314640/both-asterisk-and-ampersand-in-a-parameter-c/14314703#14314703) –
Эти вопросы: другой. Этот вопрос задается вопросом, есть ли разница в реализации C и C++. Другой задает цель * & на C++. Я бы не сказал, что они дублированы. – sbhatla