您的位置:首页 > 编程语言 > C语言/C++

* &

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++ 指针 引用 赋值 取址