Я пытаюсь понять двойные указатели. Я думаю, что я должен быть в состоянии написать (** min = 3;) в цикле MinMax ниже, но это просто игнорируется. Я думаю, что это должно установить значение, на которое указывает значение min (указатель на начало), равное 3 (или, конечно, любому int). Может кто-нибудь помочь мне понять, почему это сумасшедший разговор? Конечно, в функции нет причин устанавливать это значение, я просто хочу понять, почему оно не работает.
int ar[] = {1,23,4,32,5,67,999,-1};
int *min= 0;
int *max= 0;
MinMax(ar,ar+8,&min,&max);
void MinMax(int *start,int *end, int **min,int **max) {
// **min = 3; //why not?
*min = start;
*max = start;
while(++start < end) {
if(*start < **min) *min = start;
if(*start > **max) *max = start;
}
}