We know that in int *const p, where p is a constant pointer it means that address that p holds cannot changed but here in function foo we change the address.
How can it be possible?
int main(){
int i = 10;
int *p = &i;
foo(&p);
printf("%d ", *p);
printf("%d ", *p);
}
void foo(int **const p){
int j = 11;
*p = &j;
printf("%d ", **p);
}