为什么这两种情况不一样1.
2.
因为第一张可以理解成:char tmp[]="abc";char *p1=tmp;char *p2=tmp;所以当然输出就是一样的,因为这两个指针都是tmp的别名。而你的第二张等效于:char tmp1[]="abcd";char tmp2[]="abc";char *p1=tmp1;char *p2=tmp2;它们是不一样的数组/不一样的两块内存,当然指向它们的地址不一样。