Вообще, просто читать справа налево:
void free(shame_1 * const * const group_1);
free
принимает параметр, называемый group_1
это const
указатель на const
указатель на shame_1
объекта.
- Это не имеет значения здесь, но основная хлопот чтения справа налево, что некоторые люди используют
T const *
и другие используют const T*
и они означают то же самое, так ли вы видите либо T const
или const T
вы должны прочитать как const T
. В вашем коде только указатели const
в любом случае.
Например:
shame_1 a_shame;
const shame_1* p_a_shame = &a_shame;
free(&p_a_shame);
Там очень маленькая утилита в этом ... free()
мог бы принял const
указатель на shame_1
без дополнительного уровня косвенности, и все равно были бы в состоянии сделать все то же самое относится к shame_1
, поэтому полезно, только если free()
должен передать const
-pointer-to- const
-pointer для какой-либо другой функции (в конечном счете, не имея веской причины для всего беспорядка).
Вы можете визуализировать использования памяти/отношения как:
[a_shame] <------ [p_a_shame] <------ [group_1]*
- это, скорее всего, только в регистре процессора, хотя другие могут быть слишком после оптимизации.
я прав, если я перевести его как константный указатель на константные 1 группе указатель shame_1?
Итак, для меня «константного указатель 1 группы» бит немного подозреваемый ... Я думаю, что он читает лучше, так как «это 1 группа константный указатель на ...» или «константный указатель (так называемые 1 группа), чтобы ... ".
'group_1' - это просто имя переменной. Таким образом, тип этой переменной является константным указателем на указатель const на 'shame_1'. Способ определения константы здесь означает, что вы не можете изменить значение 'group_1', а не' * group_1', но вы можете изменить значение '** group_1'. – jogojapan
Если у вас возникли проблемы с чтением декларации C/C++, взгляните на [спиральное правило] (http://c-faq.com/decl/spiral.anderson.html). – zakinster
Совет, который мне дал мой коллега, очень помогает мне: «Прочитайте тип справа налево». На данный момент это решает много путаницы, что я знаю это :) – rozina