#include #include #include int main( void ) { char p1[10] = "ABCDEFG"; char *p2 = "ABCDEFG"; char *p3 = (char *)malloc( 10 * sizeof( char )); strcpy( p3,"ABCDEFG" ); printf( "p1=[%s]\t[%8p]\t[%c]\t[%8p]\t[%8p]\n",p1,p1,p1[0],&p1,&p1[0] ); printf( "p2=[%s]\t[%8p]\t[%c]\t[%8p]\t[%8p]\n",p2,p2,p2[0],&p2,&p2[0] ); printf( "p3=[%s]\t[%8p]\t[%c]\t[%8p]\t[%8p]\n",p3,p3,p3[0],&p3,&p3[0] ); } /* sample output: p1=[ABCDEFG] [effff8e0] [A] [effff8e0] [effff8e0] p2=[ABCDEFG] [ 10990] [A] [effff8dc] [ 10990] p3=[ABCDEFG] [ 20b48] [A] [effff8d8] [ 20b48] memory looks like this: p1=[ABCDEFG] p2=[*]->[ABCDEFG] p3=[*]->[ABCDEFG] */