c++学习笔记(一)——变量、常量、地址

来源:互联网 发布:网络通信设备品牌排行 编辑:程序博客网 时间:2024/05/21 08:51

一.     变量、常量、地址

1.1变量

       变量有变量名、变量地址、变量类型、变量值等属性,一般通过变量名使用该变量,但需要注意变量名出现在不同的地方所表示的内容有所不同,一般情况下,变量名表示给变量地址上的内容,但:当变量名出现在赋值号左边时,表示的是变量地址,即将右边的内容放到左边的地址上。当变量名出线在赋值号右边,但左边是一个地址时,该变量名表示一个地址,即将自己的地址告诉给左边。

 

1.1.1变量类型

变量类型可以是基本数据类型或者抽象数据类型(如string或者自己想写的类),还可以是组合数据类型如int *,int&等。

1.1.2变量地址

可以使用取地址符号&加变量名取变量地址,表示存放该变量值得内存地址。可以将该值赋值给一个指针,也可以用取内容符号*加地址取得该地址上的内容。

如:

inta=10;

cout<<*(&a);

则输出10。

 

1.1.3变量的引用与指针

变量的引用和指针实质相同,都是对变量地址进行操作。

引用就相当于给变量名取了另外一个名字,实质上它们是同一个变量,除了名字不同,其他属性都一样,所以对一个名字操作,会影响另一个名字。指针则是另外一个变量,只是它指向该变量的地址。

举个浅显的例子:变量a家有一个垃圾池(变量地址),变量a可以将垃圾倒到里面(改变变量值),有一天a的朋友给它取了一个绰号叫b(一个引用),这时候,无论是a,还是b去扔垃圾,其实都是同一个人,这就是引用。

因为a家的垃圾池挺大的,所以邻居c(一个指针)有时候也将垃圾扔到里面,c要扔垃圾,首先要知道垃圾池的地址,即c=&a;c去扔垃圾,也改变了地址上的东西,所以也会影响到a(也就是b)。

下面这个例子可以表示变量、引用、指针之间的关系:

intmain(){

       int a = 9;

       int &b = a;

       b = 4;

       cout << *(&a) << endl;

       return 0;

}

注意:若函数返回值是引用时,不能return一个局部变量,因为局部变量在函数结束之后就被销毁了,返回的只是一个无名的地址,并不是我们想要的值。

1.2常量

变量的值是可以改变的,所以相对复杂,常量(使用const修饰)则简单的多,因为常量不可以修改,为了安全考虑,所不能对常量进行引用或者用指针指向它,也因为不能改变,所以常量在申明时必须给它初始化。

0 0