`

const 与static 关键词在c 和 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 关键词

1. C语言时代的static
     
    在C语言中,只存在函数和变量。
    
    A、函数和全局变量,一旦加上static关键字,就限制了其作用域为本文件有效。
    B、局部变量,一旦加上static关键字,其生命其为整个应用程序。

2. C++语言时代的static
     
    在C++语言中,除了向C语言兼容外,提供了类的支持,同样static在C语言的特性在C++同样有效。
    
    A. 类的static关键字,在C++的类中,static只能用于修饰数据成员和函数成员(不能修饰构造函数和析构函数),用于该类所具有的信息而不属具体某个对象.

    B. <注意>如果在类的成员函数中定义了static局部变量,其值会在所有对象中共享!这一点不好!
分享到:
评论

相关推荐

    类的static,const,static const,const static成员的初始化

    在 C++ 编程中,static、const、static const 和 const static 是四个常见的概念,但它们的初始化方式却容易弄混淆。下面我们将对这四种成员变量的初始化方式进行总结和解释。 1. 类里的 const 成员初始化 在一个...

    C++编程const与static

    徐彤老师耗时三年倾心制作,专业录制,通俗想,细致的讲解了C++ 编程从入门到高级

    const与static用法完整总结

    `const`和`static`都是C++中非常重要的关键字,合理使用它们可以增加代码的安全性和效率。`const`用于标记不可变的数据或行为,而`static`则用于表示全局或静态作用域的数据或函数。正确理解并掌握它们的使用方法...

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

    在C和C++编程语言中,`static`和`const`是两个非常重要的关键字,它们在不同的上下文中有各自的用途和含义。这篇文章将深入探讨这两个关键字,并分享一些专家的见解。 首先,`static`关键字在C和C++中的主要作用有...

    浅谈C++中的几个关键字static,const,inline.doc

    static、const 和 inline 是 C++ 中非常重要的关键字,它们在程序设计中扮演着非常重要的角色。 static 关键字的详细解释: static 关键字可以控制变量的存储方式和可见性。控制存储方式是指将变量存储在程序的...

    C语言中关键字const、static、volatile、extern、auto、register的用法分析.doc

    本文将对C语言中的六个关键字:const、static、volatile、extern、auto、register进行详细的分析和解释。 一、const关键字 Const关键字是C语言中最基本的关键字之一,它的主要作用是将变量或对象声明为只读的,...

    C++ 中 const和static readonly区别

    C++ 中 const 和 static readonly 区别 C++ 中 const 和 static readonly 是两种不同的关键字,它们都用于修饰变量或字段,但是它们之间存在着本质的区别。 首先,const 是一个编译时常量,它的值是在编译期间确定...

    const,extern,static,volatile的使用

    ### const、extern、static、volatile ...通过以上的介绍可以看出,`const`、`extern`、`static` 和 `volatile` 这四个关键字在 C 和 C++ 中有着广泛的应用。正确地使用这些关键字可以极大地提高代码的质量和可维护性。

    const extern static volatile 小结

    `const` 关键字在 C/C++ 语言中用于定义常量,即其值在程序运行期间不可更改的变量。`const` 可以与多种数据类型结合使用,例如 `const int x = 10;` 表示定义了一个整型常量 `x`,其值为 10 并且不可改变。 1. **...

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

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

    volatile关键字 Const关键字 static关键字 mutable 关键字

    在C/C++编程语言中,`volatile`, `const`, `static` 和 `mutable` 是四个非常重要的关键字,它们各自有着独特的用途和含义。下面将详细解释这些关键字的作用以及它们在程序设计中的应用。 1. `volatile` 关键字 `...

    C++中static关键字总结

    在C++中,使用static关键字可以修饰变量和函数,具有不同的作用。下面对这些知识点进行详细解释。 首先,静态变量(static variable)的主要存在意义在于它们能够在函数调用结束后仍然保持其值。普通变量在函数内部...

    徐彤教程-C++编程const与static第0260讲:实例01-静态成员变量

    徐彤老师耗时三年倾心制作,专业录制,通俗,细致的讲解了C++ 编程从入 门到高级

    const和static

    在C/C++编程语言中,`const`和`static`是两个重要的关键字,它们各自有着特定的作用。`const`用于声明常量或只读变量,而`static`则用于控制变量的作用域和生命周期。 `const`关键字用于创建不可修改的变量。这意味...

    C++中static要点总结

    本文将详细探讨`static`在C++中的应用场景及其重要性,特别是针对静态成员变量和静态成员函数。 #### 二、静态成员变量 静态成员变量是类的一个组成部分,但不属于任何特定对象。它在整个程序运行期间只被创建一次...

    C C++ 库函数 C语言 C++语言 编程 初学者

    1. **类型转换**:C++中的`static_cast`、`dynamic_cast`、`reinterpret_cast`和`const_cast`提供了安全的类型转换机制,避免了C语言中的强制类型转换可能导致的问题。 2. **错误处理**:C语言中通常使用返回值来...

    C++类中的static和const用法实例教程

    static和const是C++程序设计中非常重要的概念,本文实例列举了C++类中的static和const的规则和用法。供大家参考借鉴。具体说明如下: 首先以代码用来举例说明。示例代码如下: class A { public: A():m(10) //...

    函数指针_extern_typedef_const_static的基本用法

    在C/C++编程语言中,`函数指针`、`extern`、`typedef`、`const`和`static`是五个非常重要的关键字,它们各自有着独特的功能和用途。本篇文章将详细阐述这些概念及其基本用法。 首先,我们来看`函数指针`。函数指针...

Global site tag (gtag.js) - Google Analytics