C语言不允许函数的嵌套定义,但是可以嵌套调用
const使用:
int const *p 指针可变,指针对应的空间的数据常量不变
int *(const p) 指针的值不变,数据常量可以通过引用修改
class C{
public :
void setname( const string&n){name = n;} //setname不会改变n的值,只是把它赋给name
private:
string name;
}
如果一个函数不需要直接或者间接的改变该函数所属对象的任何数据成员,最好将它标记为const;
例如 int get()const{return num;}
定义一个const成员函数时候,const放在函数体和参数列表中间static: 规定作用域和存储方式
静态变量未初始化自动为0全局静态变量 :其作用域为声明此变量的文件,其他文件即使使用extern也不可见 也不用担心其他文件使用了相同的定义名 例如 一个程序两个源文件 一个中定义了static int n 另一个中无法使用它,哪怕他 --------------------- 声明了extern n,编译没问题连接会错误。 局部静态变量,对于局部变量只在函数运行时候建立在函数堆栈,函数结束,变量被撤销,内存被收回。但是局部静态变量 他的值放在数据存储区,从他初始化到程序结束一直存在,每一次函数调用结束都会保存它的值,当然他只对自己的函数可见。 C 静态函数即内部函数 TIPS: 1、若全局变量仅在单个文件中访问,则可以讲这个变量修改为静态全局变量。 2、若全局变量仅在单个函数中使用,则可以将这个变量修改为该函数的静态局部变量。 3、全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。 4、函数中必须要使用static变量的情况:当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。
c++语言 静态成员数据和静态方法
//对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员或静态方法
//#只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静态成员变量在对象创建之前就已经被分配了内存空间)
//#静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放).静态成员变量是在程序编译时分配空间,而在程序结束时释放空间.
//#初始化静态成员变量要在类的外面进行.初始化的格式如下:数据类型 类名::静态成员变量名 = 初值;
//#不能用参数初始化表,对静态成员变量进行初始化.
//#即可以通过类名来对静态成员变量进行引用,也可以通过对象名来对静态成员变量进行引用.
- 函数不能返回指针,除非静态变量的地址