对(char*)&data的理解

badhot 2008-05-06 04:16:22
1,可以理解为取data的地址,得到一个地址如0x34e3,再转为char*指针 我都不知道怎么说了,怎么转?
2,取data的引用,并转为char*类型.


各位大佬如何看
如何区别&表应用还是取地址.
...全文
495 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pridesnow 2008-05-10
  • 打赏
  • 举报
回复
取data的地址 在转换
引用是在定义中 初始化时候才用&的
过去的我 2008-05-10
  • 打赏
  • 举报
回复
现在不用(char *)转换了吧,用(void *)或者(PVOID) ,后面就是个取地址
雨中的月儿 2008-05-10
  • 打赏
  • 举报
回复
哈……
p = (char*)data可以不?
p = (char*)&data可以不?

嘿嘿……
cslxxx 2008-05-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 badhot 的回复:]
printf("%d %c\n", *d, p); 得到65 `
[/Quote]
这句输出p相当于

int p=1245024;
printf("%c\n", p);

吧???
badhot 2008-05-06
  • 打赏
  • 举报
回复
printf("%d %c\n", *d, p); 得到65 `

badhot 2008-05-06
  • 打赏
  • 举报
回复
#include <cstdio>
#include <iostream>
using std::cout;

int main()
{
int data = 65;
int *d;
d = &data;
char *p;
//p = &data;//这句编译不通过
p = (char*)&data;//如1楼所说的
printf("%d %d %d\n", &data, d, p);
printf("%d %c\n", *d, *p);
printf("%d %c\n", *d, p);
cout << *d << " " << p << "\n";//上下两句输出相同
cout << *d << " " << *p << "\n";//上下两句输出相同
return 0;

}
输出
1245024 1245024 1245024
65 A
65 `
65 A
65 A
请按任意键继续. . .
qmm161 2008-05-06
  • 打赏
  • 举报
回复
up 2楼
badhot 2008-05-06
  • 打赏
  • 举报
回复
为什么不cout << *d << " " << *p << "\n";呢

&data是个指针,就是说1245052是个指针?
帅得不敢出门 2008-05-06
  • 打赏
  • 举报
回复

#include <cstdio>
#include <iostream>
using std::cout;

int main()
{
int data = 65;
int *d;
d = &data;
char *p;
//p = &data;//这句编译不通过
p = (char*)&data;//如1楼所说的
printf("%d %d %d", &data, d, p);
printf("\n%d %c\n", *d, *p);
cout << *d << " " << p << "\n";//上下两句输出相同
return 0;

}



1245052 1245052 1245052
65 A
65 A
Press any key to continue
hai040 2008-05-06
  • 打赏
  • 举报
回复
&有两个用法,引用声明和取地址,别搞混了
就像*对应的两种,指针声明和取值
另处&还是位与,*是乘
这些不同用法其实都可以用不同符号代替的
Treazy 2008-05-06
  • 打赏
  • 举报
回复
楼主概念不清楚

引用在声明的时候必须初始化(除了作为函数返回值,或者函数参数),所以在这
不是引用,这里只是个取地址操作

jackiewlb 2008-05-06
  • 打赏
  • 举报
回复
取data的地址
得到的是一个指针
然后转换成一个char指针
也就是说把原来data存放的数据按照char去解释!
不同的指针类型就是不同的解释方法!

65,179

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧