| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 872 人关注过本帖
标题:一个强制转换问题
只看楼主 加入收藏
安普留香
Rank: 2
等 级:论坛游民
帖 子:77
专家分:62
注 册:2010-5-17
结帖率:75%
收藏
 问题点数:0 回复次数:8 
一个强制转换问题
程序代码:
#include <iostream>
using namespace std;
int main()
{
     int* p=NULL;
     int x;
     double y;
     y=1;
     x=(int)y;
     p=(int*)&y;
     cout<<*p<<endl;
     cout<<p<<endl;
     cout<<&y<<endl;
     cout<<"x="<<x<<endl;
     system("pause");
     return 0;
}     
这个代码运行结果*P怎么是0不是1??p明明已经指向y了
搜索更多相关主题的帖子: std 
2010-06-19 00:32
zgxyz2008
Rank: 4
等 级:业余侠客
帖 子:67
专家分:202
注 册:2008-10-28
收藏
得分:0 
p=(int*)&y;//表示将y的地址强制转换为int*型并赋给P,相当于给p赋值,并不表示将P指向y。
2010-06-19 04:09
飞天猪1000
Rank: 1
等 级:新手上路
帖 子:19
专家分:6
注 册:2010-6-18
收藏
得分:0 
#include <iostream>
using namespace std;
int main()
{
     double* p=NULL;
     int x;
     double y;
     y=1;
     x=(int)y;
     p=&y;
     cout<<*p<<endl;
     cout<<p<<endl;
     cout<<&y<<endl;
     cout<<"x="<<x<<endl;
     system("pause");
     return 0;
}
这样应该可以了,但是不知道是不是编译器的问题,我在visual studio编译的时候依然出错,在vc6.0就不会.
2010-06-19 16:06
安普留香
Rank: 2
等 级:论坛游民
帖 子:77
专家分:62
注 册:2010-5-17
收藏
得分:0 
我是在vc6.0上运行的
3楼给的代码是可行的
但是是2楼说的把y地址赋给p,那么p不就指向y了吗
2010-06-19 17:03
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
回三楼:
但是是2楼说的把y地址赋给p,那么p不就指向y了吗
不是.
把y地址转换成int后就不是地址了
2010-06-19 20:49
安普留香
Rank: 2
等 级:论坛游民
帖 子:77
专家分:62
注 册:2010-5-17
收藏
得分:0 
代码的运行结果显示p和&y的值相同,而p是指针却又没有指向y??
2010-06-19 21:28
wuliqv
Rank: 1
等 级:新手上路
帖 子:6
专家分:6
注 册:2008-3-22
收藏
得分:0 
毫无疑问,指针p和y指的是同一块内存,只是它们的位数和表示方式不同。
2010-06-19 22:05
安普留香
Rank: 2
等 级:论坛游民
帖 子:77
专家分:62
注 册:2010-5-17
收藏
得分:0 
指向sockaddr_in的指针和指向sockaddr的指针相互转化的时候就是:(struct sockaddr*)&my_addr
这也是将地址转化成指针,那也会有问题吧
2010-06-20 18:55
wuliqv
Rank: 1
等 级:新手上路
帖 子:6
专家分:6
注 册:2008-3-22
收藏
得分:0 
实际上sockaddr_in 和 sockaddr 是等价的,你可以看一下这两个结构体的成员。
另外你可能对指针和地址这两个概念没有搞清,指针只是地址的另一个说法,它们是指同一个概念。
2010-06-20 21:23
快速回复:一个强制转换问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027449 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved