Это очень начинающий вопрос, но я заметил, что некоторые C-функции имеют вид:C/C указатели ++ в/в функции
int* foo(int *N){...}
Может кто-то:
а) объяснить, что int * foo означает? В одной такой функции нет return
.
b) объяснить, насколько гибким является int * N? Я знаю, что это означает, что аргумент является указателем на int, но из того, что я понимаю из рассмотрения одной из таких функций, это означает, что функция foo может фактически принимать векторные аргументы. Для меня это не имеет смысла.
Я начал отвечать, но я думаю, для а) вы действительно должны изучить основы C и/или C++. Что касается b), то это одна из опасных зон C и C++: указатель может представлять множество разных вещей. Обычно вы можете избежать этого на C++ с лучшими абстракциями (в основном пользовательскими типами из стандартной библиотеки.) – juanchopanza
Я изучил некоторые C, но, глядя на определенную программу, вы задали несколько вопросов. В частности, я никогда не думал, что «int * N» может означать, что N * может быть векторным аргументом. Это главное. Первый вопрос может быть из-за того, что мне был предоставлен багги код, но в аналогичном коде нет оператора возврата. – Lepidopterist
У меня есть книга «Язык программирования C» Кернигана и Ричи. Похоже, что это не касается этого случая. – Lepidopterist