c语言构造函数的作用是什么