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修饰)则简单的多,因为常量不可以修改,为了安全考虑,所不能对常量进行引用或者用指针指向它,也因为不能改变,所以常量在申明时必须给它初始化。
- c++学习笔记(一)——变量、常量、地址
- Maven学习笔记(一)——自定义maven变量以及maven内置常量
- Tensorflow学习笔记——张量、图、常量、变量(一)
- C#—变量、常量
- Swift学习笔记(二)——常量与变量
- 常量和变量——swift学习笔记(1)
- C学习笔记(五)变量与常量
- iOS学习笔记第1天——C基础:常量、变量、注释
- Linux C语言程序设计(一)——常量、变量和表达式
- PHP 学习笔记——定义常量变量。
- php学习笔记3—(变量、常量和操作符)
- 《C Primer Plus》学习笔记之 C数据的属性(零)常量和变量
- 黑马程序员-C语言笔记(一)关键字、标识符、注释、常量、变量
- c语言-常量变量笔记
- Linux C 学习笔记02-常量和变量
- C/C++中关于地址、指针和引用变量的学习笔记(一)
- swift学习笔记(一)(常量、变量、数据类型、字符串的拼接、数组、字典)
- Swift学习笔记(十四)——字符,常量字符串与变量字符串
- java中的ExecutorCompletionService原理解析
- Python Matplotlib画图示例
- [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)
- Android Studio及Gradle
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- c++学习笔记(一)——变量、常量、地址
- centos6.2 vnc安装及使用
- mybatis 增删改查、批量插入和删除以及自动生成uuid主键和分页
- android 布局管理器
- Unity3D Shader 新手教程(4/6) —— 卡通shader(入门版)
- C语言最大公约数和最小公倍数
- 手机号码检测开通微信
- 如何完全卸载oracle
- Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader