static、const、extern对比总结

来源:互联网 发布:java自定义表单设计器 编辑:程序博客网 时间:2024/06/16 10:51

今天学了几个关键字,了解了它们的用法,在接下来的学习中还需要继续熟悉练习。

static:

   1、全局静态变量:作用范围局限于它的源文件,只有本文件内的代码才可以访问,在其他文件内不可见。

   2、局部静态变量:局限于特定函数,但出作用于不释放,在函数体内的静态变量的值也能够维持。

   3、静态函数:作用范围仅限于它的源文件,只有本文件内才能调用,函数名在其他文件不可见。

   4、存放位置:程序开始时,存放在全局数据区,结束时释放空间

const:const修饰的值是只读的变量。

   1、修饰只读变量:具有不可变性,不可更改 例如const int m ;char str【m】= {0};

   2、修饰一般变量:一般变量是简单类型的只读变量,const可放在类型前也可放在类型后,例:int const i=2;const int i = 2

   3、修饰数组:定义一个只读数组  例如:int const a【3】={0};const int a【3】={0}

   4、修饰指针:const int *p;     p可变  *p不可变             int const *p;          p可变 *p不可变

   int *const p;   p不可变,*p可变             const int *const p    p不可变,*p不可变

   5、修饰函数的参数:void fun(const int *p) *p在函数完成释放内存时 不会改变

   6、修饰函数的返回值:返回值不可被改变

extern:extern可以置于变量或函数前,以表明变量或函数的定义在别的文件中,下面代码用到的这些变量或函数是                外来的,不是本文件定义的,提示链接器遇到此变量和函数时在其他模块中解析/绑定此标识符。

struct:定义一个结构体变量,存放不同类型的数据,结构体占用的内存大于其所有成员内存之和(存在缝隙)

enum:枚举,例:enum week{Mon=1,Tues,Wed, Thurs, Fri, Sat, Sun } a, b, c;

union:共用体占用的内存等于最长的成员占用的内存,同一时刻只能保存一个成员的值,对新成员赋值,会把原来               成员值覆盖,因此可以凭此判断大小端


原创粉丝点击