Я плохо знаком с C++, и я пытаюсь понять некоторый код. Что означает иметь * перед типом данных? и почему имя класса перед именем метода CAStar::LinkChild
void CAStar::LinkChild(_asNode *node, _asNode *temp)
{
}
Если разбить диапазон индекса на неперекрывающиеся диапазоны, как вы предлагали, то при условии, что массив создается в общей памяти (т.е. не каждым потоком), блокировки не требуются.
-121--4746196-Как насчет использования реализации связанного списка? В одном столбце будет содержаться значение (номер заказа) следующего предмета. Я думаю, что это намного проще всего использовать при вставке заказов между ними. Не нужно перенумеровать.
-121--906675-A * перед типом данных говорит, что переменная является указателем на тип данных, в данном случае указателем на узел. Вместо передачи копии всего «узла» в метод вместо него передается адрес памяти или указатель. Для получения дополнительной информации см. Указатели в данном учебном пособии по C++ .
Имя класса перед именем метода определяет метод класса CAStar
. Для получения дополнительной информации см. Учебные страницы для классов .
*
означает, что это указатель . Вы также обнаружите, что узел _asNode *
эквивалентен узлу _asNode *
.
Имя класса находится перед именем метода, если метод не определен внутри класса {...}
. ::
- это оператор области видимости .
Вы новичок в программировании в целом или только в C++? Если вы новичок в программировании, то вам, вероятно, стоит взять несколько уроков. Если вы только начинаете изучать C++, вы можете попробовать прочитать Практическое программирование на C++ или C++ Primer.
Что касается вашего конкретного вопроса: в объявлении переменной звездочка означает "это указатель":
int * pointer;
Это также относится к объявлениям/прототипам функций, где объявляются переменные, как в вашем примере.
После объявления звездочка означает, что вы отменяете ссылку на указатель. То есть, вы получаете значение в том месте, на которое он указывает.
printf("memory address:%d value:%d", pointer, *pointer);
Вы заметите, что адрес памяти будет меняться неожиданно, в зависимости от состояния программы на момент ее печати. В простой программе вы не увидите изменения, а в сложной - увидите.