* &
2015-10-25 15:03
465 查看
通过应用进行*和&的用法辨析与总结
*a &a int* int&
创建变量,不初始化
int a,b; //a,b是房子 int *h,*i,*j; //h,i,j是地址 //*:指针
以下代码错误
error1
错误原因:不允许创建未初始化的别名(又称引用变量)
int& x; //x是别名 //&:引用
创建变量,并初始化
//#1 int* k = &a; //a是房子,k是地址,&是取地址运算符,&a是a(房子)的地址。作用:把a(房子)的地址赋给k //*:指针 &:取地址运算符 //#2 int* o = new int(1); //1是家具,o是地址。作用:系统在内存中创建一个房子(房子没名字),里边放着1(家具)并把地址赋给o //*:指针 //#3 int& n = a; //a是房子,n是别名。作用:使得a这间房子也叫n //&:引用
赋值操作
a = 1; //1是家具,a是房子。作用:把1(家具)放到a(房子)里 //似#1 i = &b; //b是房子,i是地址,&是取地址运算符,&b是b(房子)的地址。作用:把b(房子)的地址赋给i //&:取地址运算符 //似#2 h = new int(1); //1是家具,h是地址。作用:系统在内存中创建一个里边放着1(家具)的房子(房子没名字)并把地址给h //似#3 n = b; //b是房子,n是别名。作用:更改n(别名)所指的房子,由a房子换成了b房子
以下代码错误
error2
错误原因:有j(地址)还不行,需要先new(建房子)才能把1(家具搬进去)
*j = 1; //1是家具,j是地址,*是取内容运算符,*j是地址为j的房子。作用:把1(家具)放到地址为j的房子里 //*:取内容运算符
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Python动态类型的学习---引用的理解
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Jquery 表单取值赋值的一些基本操作
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Ruby编程中的赋值相关操作
- Lua教程(二):C++和Lua相互传递数据示例
- Shell脚本中引用、调用另一个脚本文件的2种方法
- PowerShell中定义多个变量并赋值的例子
- vbs引用另一个vbs的代码
- C++联合体转换成C#结构的实现方法
- C# Pointer指针应用实例简述
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析