美文网首页
const关键字和常量

const关键字和常量

作者: 波洛的汽车电子世界 | 来源:发表于2019-05-02 01:06 被阅读0次

注:以下大部分内容来源于 coursera 课程《C++程序设计》

const的用法

  1. 定义常量
const int max = 23;

const 与define的差别:const 和define 都可以定义常量,但是建议用const,因为它是有类型的。

  1. 定义常量指针
int n,m;
const int *p = &n;
* p  = 5 // 编译错误,不可以通过常量指针去修改所指向的内容
 p  = &m //编译正确,常量指针可以指向其他地址

常量指针与非常量指针的差别:

  • 不可以用过常量指针去修改所指向的内容。
int n,m;
const int *p = &n;
* p  = 5 // 编译错误,不可以通过常量指针去修改所指向的内容
 p  = &m //编译正确,常量指针可以指向其他地址
  • 不能把常量指针赋值给非常量指针。
const int *p1, int *p2;
p1 = p2; // 编译正确
p2 = p1; // 编译错误
p2 =  (int *)p1; // 强制转化,编译正确
  1. 定义常引用

引用

格式:类型名&引用名 = 某变量名;
作用:引用一个变量,等价于这个变量。两个中间只要有一个变另一个也会变。

int n = 4;
int &r = n;

r 引用了n, r的类型是 int &
注意:

  1. 定义引用时,一定要将其初始化成引用某个变量。
  2. 引用是从一而终的。初始化后,它就一直引用这个变量,不会再引用其他变量。
  3. 引用只能引用变量,不能引用常量和表达式。但是引用可以赋值。

例子:编写一个改变两个整型变量值的函数。

void swap(int a,int b)
{
int tmp;
tmp = a;
a= b;
b=tmp;
}
int n1,n2;
swap(n1,n2)

这个程序里,n1和n2的值没有改变。

void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a= *b;
*b=tmp;
}
int n1,n2;
swap(&n1,&n2) 

swap()里面的参数变成了n1,n2的地址,n1,n2会被交换。
现在用c++的引用来写,更加简便:

void swap(int &a, int &b)
{
tmp = a;
a= b;
b=tmp;
}
int n1,n2;
swap(n1,n2)

例子:引用作为函数的返回值

int n = 4;
int &SetValue() {return n;}
int main()
{
SetValue() = 40;
count <<n;
return 0;
}

SetValue()的返回值是一个整型的引用,它返回的值又是n,所以它的返回值是引用了n。SetValue() = 40是对一个函数调用的结果进行赋值,等价于对n进行赋值。

常引用

定义引用时,前面加const关键字,即为常引用。

int n;
const int &r = n;

特点是不能通过常引用去修改变量的内容,并不是说其引用的内容不能被修改:

int n = 100;
const int &r = n;
r = 200; //编译错误
n = 300; //编译正确

常引用和非常引用是不同类型的引用。

相关文章

  • C++基础

    const关键字 const关键字标识常量,标明const右侧的变量(本质是常量)不可变。int const *b...

  • const/static/extern/const/static

    const -- 常量 const中文意思是“常量”,不可改变的固定的。const关键字主要作用: const ...

  • go常量与变量

    常量 常量使用关键字const,常量的数据类型只能是数字型(整数,浮点和复数)、字符串型和布尔型。格式:const...

  • const、static

    const关键字 1.被const修饰的变量是常量,以下都是表示a是常量:const int a = 10;int...

  • js 中声明常量关键字 var、let、const

    js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。 ...

  • 成员变量 全局变量 局部变量 属性 常量

    成员变量 全局变量 局部变量 属性 常量 常量:oc中声明常量使用关键字const。如:const double ...

  • C++程序设计学习笔记:1 从C走进C++ 关键字const和常

    1 定义常量 关键字const,用于定义常量。例如: 学了 C++ 之后,应该多用const,少用 define。...

  • 2018-09-04

    js变量和常量 JS中与变量常量声明相关的关键字有var、let以及const,其中let和const是ES6的新...

  • Dart 基本语法

    Final以及Const 在 Dart 中使用 final 以及 const 关键字来申明常量。使用 const ...

  • ES6新特性

    块作用域 let和const有关let 关键字(只在{}作用域内有用)const 关键字(常量也用于块即作用符 ...

网友评论

      本文标题:const关键字和常量

      本文链接:https://www.haomeiwen.com/subject/cgugnqtx.html