1.如何调用函数
答:(1)根据函数名找到函数入口地址
(2)为形参分配空间
(3)传值(值传递,地址传递)
(4)执行函数体
(5)返回
(6)释放
2.关键字static的作用是什么?
答:(1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;
(2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
(3)限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
(4)在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;
(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。
3.数组名作函数参数时,实参形参数组和实参形参变量传递有什么区别?
答:对实参数组和形参数组来说数据传递表现为“双向”的,而对实参变量与形参变量而言数据的传递仍然是单向的。
4.结构体数组元素和组名分别做实参时分别传递什么??
答:结构体数组元素作为实参时,采取单向“值传递”方式将结构体变量所占的内存单元的内容全部顺序复制给形参(函数调用期间形参也要占用内存单元),当实参的成员中包含数组时,形参相应的成员接受到的是一个地址。
结构体数组名作为实参时,传递给形参的时内存中已指定单元的地址,调用过程中形参数组与实参数组占用同一段内存单元,因此对形参数组的操作也就是对实参数组的操作,对数组的操作表现为双向性。