答1:
char sname[] 在作为函数参数是表示指针,等同于char *sname。
(因为用[]一眼能看出指针指向数组。sname[0]表示的是单个字符)
student (char sname[]=“no name”,long sid=0 ) //这叫默认参数,即如果调用该函数,如果在调用 //的时候没有给实参,则会默认给sname赋值“no //name”,sid赋值0
答2:
构造函数是在定义类对象的是后自动调用的(初始化类对象)。
你在main中定义了一个类对象,会自动调用,如果你没有在类声明中定义构造函数,则会默认帮你生成一个。(默认生成的里面什么都没有操作,但还是会被调用)
1 第一个问题是给构造成员变量加初始值,为了使得程序友好
2 第二个问题 因为在你初始化的时候 ,先调用初始化列表里面的成员进行初始化,就会调用该对象所属的该类的构造函数