CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

关于指针的菜鸟问题

楼主fenglhua(总也飞不高)2006-03-20 10:56:22 在 C/C++ / C语言 提问

有以下几个问题,  
  register   struct   hostent   *hostptr   =   NULL;      
  struct   in_addr   *spIPAddr   =   NULL;                          
  以上这两个个结构体在哪定义的?  
  char   *spHostStart   =   NULL;  
   
  spIPAddr   =   (struct   in_addr   *)   hostptr->h_addr_list[0];  
  这句话是什么意思?  
  spHostStart   =   inet_ntoa(*spIPAddr);  
  这一句呢? 问题点数:60、回复次数:8Top

1 楼socol(这个问题很难)回复于 2006-03-20 11:13:56 得分 5

我以为,   *hostptr   这个是指向结构体的指针  
  (struct   in_addr   *)   hostptr->h_addr_list[0]是指  
  指针hostptr指向struct   in_addr这个结构体中的成员h_addr_list数组  
   
  Top

2 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-20 11:25:57 得分 20

struct   in_addr   {  
      union   {  
                      struct   {   u_char   s_b1,s_b2,s_b3,s_b4;   }       S_un_b;  
                      struct   {   u_short   s_w1,s_w2;   }                         S_un_w;  
                      u_long                                                                       S_addr;  
      }   S_un;  
  };  
  //是socket使用当中的地址ip联合结构  
  struct   hostent   {  
      char   FAR   *               h_name;  
      char   FAR   *   FAR   *   h_aliases;  
      short                         h_addrtype;  
      short                         h_length;  
      char   FAR   *   FAR   *   h_addr_list;  
  };  
  Top

3 楼sparkiss()回复于 2006-03-20 12:00:43 得分 10

hostent结构体是用于储存给定服务器信息的。此结构体在Winsock2.h中声明.  
  in_addr结构体是通过INTERNET地址来描述主机信息。Winsock2.h  
   
  spHostStart   =   inet_ntoa(*spIPAddr);这句是将INTERNET地址转成用.表示的地址,也就是IP地址。  
  Top

4 楼peter9606( 荷尔蒙一失效 人就清醒了)回复于 2006-03-20 12:12:53 得分 5

楼上怎么就知道一定是winsock呢?Top

5 楼fenglhua(总也飞不高)回复于 2006-03-20 12:39:05 得分 0

谢谢楼上的各位兄弟,能不能再给解释一下  
  spIPAddr   =   (struct   in_addr   *)   hostptr->h_addr_list[0];  
  这句呢,特别是(struct   in_addr   *)这个我不太理解Top

6 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-20 12:42:13 得分 5

c语言的基础:   强制类型转换  
   
  (struct   in_addr   *)   也只是一种数据类型而已  
  Top

7 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-20 12:50:18 得分 15

spIPAddr   =   (struct   in_addr   *)   hostptr->h_addr_list[0];  
  这句呢,特别是(struct   in_addr   *)这个我不太理解  
  ----------------------  
  (struct   in_addr   *)强制类型转换   ...  
  把   hostptr->h_addr_list[0]   的类型解释为(struct   in_addr   *)类型,  
  然后赋值给   spIPAddr   ...Top

8 楼shaobolovelinglijun(邵波一生一世爱凌丽君)回复于 2006-03-20 13:12:43 得分 0

顶贴。不需要理由。Top

相关问题

  • 指针的菜鸟问题
  • 菜鸟问指针问题:
  • 关于指针的菜鸟问题:
  • 散分:菜鸟的指针问题
  • 菜鸟问一个指针问题
  • 小菜鸟问个简单的语法问题:关于指针的指针
  • 菜鸟高分求救:如何取得菜单指针
  • Tc菜鸟问指针问题(一定给分)
  • 菜鸟问题 请问怎么用数组指针?
  • 菜鸟小问题: 二维数组<->二重指针的区别

关键词

  • 结构
  • null
  • hostptr
  • spipaddr
  • addr
  • 结构体
  • struct
  • 地址
  • 类型
  • hostent

得分解答快速导航

  • 帖主:fenglhua
  • socol
  • goodluckyxl
  • sparkiss
  • peter9606
  • happy__888
  • jixingzhong

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo