/* CUJ example, Stephen D. Williams, SDW Systems */

#include <stdio.h>

main()
    {
    char *ptr = "hi there george";
    
    puts(ptr);
    
    /*  ((long *)&ptr)++; <---incorrect */
    
     (*((long**)&ptr))++;
    puts(ptr);
    
#define ptr_type(type, prt) (*((type**)&ptr))
    puts((char *)++(ptr_type(long,ptr)));
#undef ptr_type /* scoped macro*/
    }
        
/* 

output:

hi there george
here george
 george

*/


