const static在c c++中的作用

转载 2012年03月26日 12:26:54

const static在c c++中的作用

一.C语言中的const

    const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码的阅读时增加一定的难度。

1)用const修饰一般变量

       注意在C语言中,用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外);

       如:

       const int n;  这种声明方式是错误的

       const int n=5; 正确

       void fun(const int n); 正确

       const char a; 错误

       char * const p;  错误

       const char *p;正确(注意这种为什么是正确的),因为这里const是修饰p指向的变量,而不是指针变量p本身 

       一旦一个变量被const修饰后,在程序中除初始化外对这个变量进行的赋值都是错误的。

      如:

      const int n=5;

      n=3;    错误

   (2)const与指针搭配使用

      首先必须弄清楚两个基础概念:指针常量和常量指针

      指针常量:即指针本身的值是不可改变的,而指针指向的变量的值是可以改变的;

      常量指针:即指针指向的变量的值是不可改变的,而指针本身的值是可以改变的;

二.C++中的const

    C语言和C++中的const有很大区别。在C语言中用const修饰的变量仍然是一个变量;而在C++中用const修饰过后,就变成常量了。

   如:

   
const int n=5;int a[n];

这种方式在C语言中会报错,原因在于声明数组时数组的长度必须为一个constant,即常量,虽然n用const限定了,但n终究是一个变量,因此会报错;

但是在C++中不会报错,因为在C++中用const修饰过后,n就已经等同于一个常量了,因此可以通过。

 

static

C语言时代的static 
       在C语言中,只存在函数和变量。
             A、函数和全局变量,一旦加上static关键字,就限制了其作用域为本文件有效。
             B、局部变量,一旦加上static关键字,其生命其为整个应用程序。
C++语言时代的static
      在C++语言中,除了向C语言兼容外,提供了类的支持,同样static在C语言的特性在C++同样有效。
             C、类的static关键字,在C++的类中,static只能用于修饰数据成员和函数成员(不能修饰构造函数和析构函数),用于该类所具有的信息而不属具体某个对象.
             D、<注意>如果在类的成员函数中定义了static局部变量,其值会在所有对象中共享!这一点不好!

C/C++中static和const关键字的作用总结

static 关键字至少有下列 n 个作用:   (1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时 仍维持上次的值;   ...

c和c++中static,const的一些见解

  • 2008年04月10日 18:39
  • 20KB
  • 下载

求职宝典 第五章 C预处理器、作用域、static、const以及内存管理

对于 王道程序员面试宝典 一书上的基础知识点总结,将陆续发表在各个专题,以方便今后查阅。 章节顺序并不是按时间顺序,而是根据自己的情况随机安排。   1.  C预处理器在编译之前运行,通常以#开头,主...

C++语言之static_cast和const_cast有什么作用

static_cast和const_cast有什么作用   C++通过引进四个新的类型转换操作符克服了C风格类型转换的缺点,这四个操作符是, static...
  • nashse
  • nashse
  • 2014年08月01日 13:13
  • 393

C++ static、const、auto、explicit关键字作用

一、static关键字作用: 1、函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; 2、在模块内的static全局变量可...

C++中static和const的作用小结

static关键字至少有下列n个作用:    (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;    (2)在模块...

C/C++中static,const,inline三种关键字详细总结

 一、关于static static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 ...

c/c++中extern、static、const的用法及全局变量/常量

基本概念 编译单元 由.cpp(.c)文件及include的.h文件构成一个编译单元(把头文件内容复制到cpp中),在编译时,编译为一个.obj文件,obj文件里包含了变量存储的相对地址。 声明与定...
  • lwwl12
  • lwwl12
  • 2017年07月28日 13:06
  • 150

C\C++备忘录之关键字【static,const,extern】

static 1.局部变量 // 该变量生命周期不仅仅是进入该函数后,而是整个程序运行期间 void foo() { static int nVar = 0; printf("var = %...

温习static和const在C和C++的区别

温习static和const在C和C++的区别
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:const static在c c++中的作用
举报原因:
原因补充:

(最多只允许输入30个字)