Функция возвращает указатель на int
, выражение *internalNodeNumKeys(root) = 1;
анализируется как:
*(internalNodeNumKeys(root)) = 1;
Постфиксные операторы, такие как ()
, для связывания вызова функции более плотно, чем префиксные операторы, такие как *
для разыменования.
Обратите также внимание, что internalNodeNumKeys
очень непереносим:
- Выполнение арифметики с указателями на
void
указатели непереносимы, node
должен быть приведен как(unsigned char *)
перед сложением. - Приведение произвольного смещения к объекту, указанному
node
в качестве указателя на int
, может иметь неопределенное поведение, программист в этот момент играет с огнем.