Почему для изменения значения переменной через доступ к указатель указателя необходимо использовать две звезды * * в примере ниже, а write хватает * звезды чтобы добраться до значения?
char test = 'a';
char *ptr_to_char = &test;
char **ptr_to_ptr = &ptr_to_char;
*ptr_to_ptr = 'd';
/* Incompatible integer to pointer conversion assigning to 'char *' from 'int'*/
**ptr_to_ptr = 'b';
/* works */
write(1, *ptr_to_ptr, 1);
/* also works */