关键字static的作用是什么?
解析:这个简单的问题很少有人能回答完全。大多数应试者能正确回答第一部分,一部
分能正确回答第二部分,但是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因
为他显然不懂得本地化数据和代码范围的好处和重要性。
答案:在C语言中,static关键字至少有下列几个作用:
● 函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分
配一次,因此其值在下次调用时仍维持上次的值。
● 在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外其他函数访
问。
● 在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限
制在声明它的模块内。
● 在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝。
● 在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问
类的static成员变量。
------------------------------------------------------------------------------------------------------------------------------
写出下面程序的运行结果。
解析:在求和函数sum里面c是auto变量,根据auto变量特性得知,每次调用sum函数时变
量c都会自动赋值为0。b是static变量,根据static变量特性得知,每次调用sum函数时变量b都
会使用上次调用sum函数时b保存的值。
简单地分析一下函数,可以知道,若传入的参数不变,则每次调用sum函数返回的结
果,都比上次多2。所以答案是:8,10,12,14,16。
答案:8,10,12,14,16。