Function which is returning pointer to pointer in c

int** ibm()
{
    static int a[]={4,8,12,16};
    static int *pointer=a;
    static int **p=&pointer;
    return p;
}
void main(){
    int **ptr;
    ptr=ibm();
    clrscr();
    printf("%d",++**ptr);
    getch();
}
Output:5

No comments: