对于字符串常量,编译器都是默认按其大小分配内存存放字符串,并把地址首地址赋值指针变量。如:char*p="helloworld";其实编译的时候等于:constcharstr[]="helloworld";char*p=str;只不过这个str数组名你没法直接拿来用而已。