指针和地址 数组名和首元素地址 其实很简单

纯手机编写 多多包涵。

先把结果写在前面:

1,指针是地址,地址就是指针
2,数组名是数组变量名,左值是数组地址(指针)本身
3,数组名是首元素地址,也不是首元素地址(引新规)
4,变量名左值就是地址本身,右值是数据。

愿意看的同学往下看。 欢迎批评指正,不欢迎辱骂

在这之前,问问大家,如何理解=等号的。
对我而言,也许c++并不是这样定义的。

1,=等号的用法:

(左值)地址=数据(右边),
对编译器来说 把 右边数据 写入 左边地址。

什么是右值:左值。
变量名= 在等右边或没有等号时,是右值
变量名=在等号左边,是左值。
变量名是右值时,是数据的别名
变量名是左值时,是地址的别名。

问题一:
1,指针是什么?指针是地址吗?

2,指针有地址吗?

我的答案:
1, 指针就是地址。

理由

int a=10; // 变量a 假设地址是a01
double b=10.0;// 变量b 假设地址是b02
int *pa=&a; // 变量pa 假设地址是pa03
double *pb=&b; //变量pb 假设地址是pb04

变量a,b 分别是 整型类型 浮点型类型。
a存放整型数据 b存储浮点型数据
pa和pb是指针类型,那他应该存放的指针类型数据
pa pb存储的是地址数据。那地址是指针类型。

结果:地址就是指针,指针就是地址

答案2:
指针(地址)没有地址,地址没有地址
地址变量pa,pb有地址,指针变量是数据类型。

哈哈 你骗人
根据左值原则 a b 分别代表地址 a01 b02
你说地址没有地址 那么 &a &b 是什么鬼?
如果我告诉你&a &b就是他们本身,就是地址(指针)
a01 b02本身,分别是10和 10.0的地址

反过来说10和10.0的地址不是&10和&10.0
对不起 &10和&10.0编译器不认识。

那么a是啥玩意?b又是啥玩意?作为左值
a就是a01的别名 b是b02的别名
a就是指针(地址a01) b就是指针(地址b02)

还记得我们说=号

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值