`
huobengle
  • 浏览: 889031 次
文章分类
社区版块
存档分类
最新评论

const的常见用法

 
阅读更多

出处;http://blog.csdn.net/bizhu12/article/details/6672723

const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量

下面我就介绍一下几种常见的用法

1.用于定义常量变量,这样这个变量在后面就不可以再被修改

const int Val = 10;

//Val = 20; //错误,不可被修改

2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这个参数的值若被修改,

则函数外部传进来的变量的值也发生改变,若想保护传进来的变量不被修改,可以使用const保护

void fun1(const int &val)

{

//val = 10; //出错

}

void fun2(int &val)

{

val = 10; //没有出错

}

void main()

{

int a = 2;

int b = 2;

fun1(a); //因为出错,这个函数结束时a的值还是2

fun2(b);//因为没有出错,函数结束时b的值为10

}

如果只想把值传给函数,而且这个不能被修改,则可以使用const保护变量,有人会问为什么不按值传递,按值传递还需要把这个值复制一遍,

而引用不需要,使用引用是为了提高效率//如果按值传递的话,没必要加const,那样根本没意义

3. 节约内存空间,

#define PI 3.14//使用#define宏

const double Pi = 3.14 //使用const,这时候Pi并没有放入内存中

double a = Pi; //这时候才为Pi分配内存,不过后面再有这样的定义也不会再分配内存

double b = PI; //编译时分配内存

double c = Pi; //不会再分配内存,

double d = PI; //编译时再分配内存

const定义的变量,系统只为它分配一次内存,而使用#define定义的常量宏,能分配好多次,这样const就很节约空间

4.类中使用const修饰函数防止修改非static类成员变量

class

{

public:

void fun() const //加const修饰

{

a = 10; //出错,不可修改非static变量

b = 10; //对,可以修改

}

private:

int a ;

static int b;

}

5.修饰指针
const int *A; 或 int const *A; //const修饰指向的对象,A可变,A指向的对象不可变
int *const A;   //const修饰指针A, A不可变,A指向的对象可变
const int *const A; //指针A和A指向的对象都不可变

6.修饰函数返回值,防止返回值被改变

const int fun();

接收返回值的变量也必须加const

const int a = fun(); //接收的变量也要是const的,int a = fun()是错误的

7.修饰类的成员变量

使用const修饰的变量必须初始化,在类中又不能在定义时初始化,

如;

class

{

private:

int a = 10;

const int b = 10;

static const int c = 10;

//这样初始化都是错的,

}

初始化const int类型(没有static),在类的构造函数上初始化

Class Test

{

Public:

Test():b(23) //构造函数上初始化b的值为23

{

}

private:

const int b ;

}

初始化staticconst int这个类型的(带有static的),在类的外面初始化

class Test

{

private:

static const int c;

}

const int Test::c=10; //类的外部初始化c为10

8.const定义的对象变量只能作用于这个程序该C/C++文件,不能被该程序的其他C/C++文件调用,

如file1.cpp中 const int val;

在file2.cpp中, extern intval; //错误,无法调用,

要想const定义的对象变量能被其他文件调用,定义时必须使用extern修饰为

extern const int val;

非const变量默认为extern,要是const能被其他文件访问必须显示指定为extern

分享到:
评论

相关推荐

    const_用法总结(C++)文档

    ### const用法总结(C++) #### 一、一般常量 在C++中,`const`关键字用于声明常量,这些常量在程序运行过程中不可更改。常量的声明有两种常见格式: 1. `const<类型说明符><变量名>=<常量或常量表达式>;` 2. `...

    C++编程中的const关键字常见用法总结

    以下是`const`关键字的一些常见用法: 1. **定义常量**: `const`关键字可以用来声明常量,确保变量一旦赋值后就不能再更改。有两种常见的声明方式: - `TYPE const ValueName = value;` - `const TYPE ...

    c++中const的用法及常见错误

    在本文中,我们将深入探讨`const`的用法以及常见的错误。 1. `const`作为变量修饰符: 当`const`修饰一个变量时,它表明该变量的值不能被修改。例如,`const int nc = 0;`声明了一个不可变的整型变量`nc`。尝试...

    const用法

    ### const用法详解 在C++编程中,`const`关键字是极其重要的,它用于声明常量或指定对象的一部分为不可修改。...掌握`const`的用法不仅有助于避免常见的编程错误,还能提升代码的可读性和维护性。

    Const用法详解 C++

    Const 用法非常灵活,下面是常见的几个用法场景: 1. 使用 Const 关键字表明一个值或者指针在初始化后就不再被修改。 例如:`const int a = 5;` 或 `int * const p = &x;` 2. 使用 Const 关键字表明在该函数执行...

    关键字const的用法

    `const`最常见的用法 1. **防止函数参数被修改** 当我们需要传递一个数据给某个函数,但不希望该数据在函数内部被修改时,可以使用`const`关键字。这样做的好处是可以避免意外修改原始数据,提高代码的安全性。 ...

    c语言const的用法.pdf

    C语言中的const关键字是一个非常重要的概念,主要用于声明常量和指针,表明变量的值不能被修改。...同时,它也是面试或技术交流中常见的重点问题,理解const的不同用法对于任何C语言程序员来说都是基本功。

    const用法详解

    ### const用法详解:深入解析C++中的常量与const关键字 在C++编程语言中,`const`关键字被广泛用于定义常量、保护数据不被意外修改以及提高代码的安全性和效率。本文将全面解析`const`的用法,包括其基本应用、高级...

    C++中const用法总结.doc

    有四种常见的用法: - `const`修饰指针内容:`const TYPE *pContent`,表示指针指向的内容是常量,不能通过指针修改。 - `const`修饰指针本身:`TYPE * const pContent`,表示指针变量本身不可变,但其指向的数据...

    c++中const 的各种用法

    ### C++中const的各种用法详解 #### 一、引言 `const`关键字在C++编程语言中扮演着至关重要的角色。它不仅能够帮助程序员更精确地控制代码的行为,还可以提高程序的安全性和效率。本文将详细介绍`const`在C++中的...

    c++中的const用法总结

    虽然`const`修饰函数返回值的应用不如修饰参数那么常见,但它依然有其作用。`const`可以用于返回指针或引用类型,确保使用者不会通过返回的指针或引用修改原始数据。例如: ```cpp const int *fun2(); ``` 此函数...

    关键字const用法

    接下来,`const`可以与指针结合使用,有两种常见的形式: 1. `const`指针:指针指向的内容是不可变的。 ```c const int *p = &a; // p指向一个常量整型变量 ``` 在这个例子中,`p`是一个指向`int`的指针,但`p`所...

    const的理解和用法

    ### const的理解和用法 在C++编程语言中,`const`关键字是非常重要的一个特性,它可以帮助程序员更好地控制代码中的变量、指针等资源的访问权限。本文将详细介绍`const`的基本概念、不同应用场景下的使用方法及其...

    static,const,volatile用法

    在编程领域中,`static`、`const`、`volatile` 这三个关键字非常常见且重要。它们分别用于控制变量的作用域、可变性和不可预测性,是理解程序行为的基础之一。下面将详细介绍这三个关键字的功能与用法。 #### 1. `...

    C++中const关键字详解

    本文将详细介绍`const`关键字的用法及其在不同场景下的应用。 #### 二、`const`关键字的基本概念 `const`关键字用于指定某个实体是常量,这意味着该实体一旦被赋值后就不能再被修改。它可以用来修饰变量、指针、...

    有关const的理解和用法

    `const` 在 C 语言中有多种应用场景,以下是一些常见的使用方法: ##### A. 防止函数参数被修改 当调用函数时,为了避免无意中修改传入的参数,可以在函数原型中使用 `const` 关键字。例如: ```c int FindNum...

    C++const关键字详解

    本文将深入探讨`const`关键字的各种用法和其背后的原理,帮助读者更全面地理解和应用这一特性。 #### 一、基本常量声明 `const`关键字可以用来声明不会改变的常量。常量声明有两种常见的格式: ```cpp const ...

    qsort函数常见用法

    qsort 函数常见用法 qsort 函数是 C 语言标准库中的一种排序算法,用于对数组进行排序。它的原型如下: `void qsort(void *base, size_t num, size_t width, int (*cmp)(const void *, const void *))` 其中,`...

Global site tag (gtag.js) - Google Analytics