str *p;这样定义只是声明了一个str指针类型的变量, 如果不分配内存让它指向的话, 是不可以用的.str pp;这个定义就说明了定义了pp这个变量, 已经分配了内存了, 这块内存的名字就叫做pp, 而不是指针这些都是C语言的基础 , 希望能帮到你