类中取地址的相关操作------int*与&
来源:互联网 发布:机房网络管理 编辑:程序博客网 时间:2024/05/18 23:27
class C{
public:
int a;
int b;
C(int fi, int se){
a = fi;
b = se;
}
};
ostream& operator<<(ostream& os,C c){ // 重载<<操作符,只能为非成员函数(通常为友元,因为会对类中的非public成员操作)
os<<c.a<<" "<<c.b;
return os;
}
令 C c(1,2);
cout<<&c<<endl;
cout<<(int*)(&c)<<endl;
cout<<*(&c)<<endl;
cout<<*(int*)(&c)<<endl;
那么会得到结果是:
0029F9B4
0029F9B4
1 2
1
----------》》&c是c类对象的地址,这个地址是指向整个C类对象的,如果对它取值,即*(&c),那么得到的就是c的值,即c对象。
(int*)(&c)是对c对象的地址的强制类型转换,将指向C类对象的地址转换为指向int型数据,虽然地址的值没有改变,但是指向的东西改变了。(在这里可以认为指向的范围变小了,从C类到int型)如果对这个(int*)(&c)取值,即*(int*)(&c),那么得到的就是C中的第一个四个字节的值,在这里是c.a。
0 0
- 类中取地址的相关操作------int*与&
- java中int,integer相关的操作
- ip地址与int类型的转换
- ip地址与int类型的转换
- 地址的减法操作的实质:int k=(int *)10-(int *)2; k = ?
- 请求地址操作中的(int*)
- IP地址相关操作
- 虚拟地址与物理地址的相关概念
- java ip地址相关操作
- java ip地址相关操作
- 使用node操作mongodb的相关文档地址
- Ubuntu自动获取IP地址的相关操作/方法
- (int *)&i 与int increment(int * & i) 相关理解的整理
- 虚拟地址的结构与操作
- int*与(int*)的区别
- BigDecimal,int 的操作
- 字符串与int,double的转换: stringstream 操作
- 将IP地址与Int转换
- poj 3321 Apple Tree(dfs序+线段树)
- 打开MySQL的慢查询记录
- CF Educational Round 12, B
- mysql全备脚本
- Swift - Struct 与Class 的差异性
- 类中取地址的相关操作------int*与&
- 面试题9
- POJ 3744 Scout YYF I(概率DP)
- bootstrap中的技巧小结
- 安装数据库注意要点
- 在ios系统中查看模拟器和真机中的沙盒目录
- 最短路
- Java File类功能扩展
- vs 调试技巧 1