一个关于指针的问题,如果你觉得你的C++指针学到家来.一直来看看这么东西吧!给出回答一定给大分.!是一个关于,WINSOCK的一句代码\如下:
 
// 将字符串地址转换成32位的IP格式字符串。
  ip = inet_ntoa(*(struct in_addr*)(*host->h_addr_list));还有一个句子也帮我说说.
 host = gethostbyaddr((LPSTR)&dotIP, INET_LENGTH, PF_INET);表示什么意思:(LPSTR)&dotIP  这个?

解决方案 »

  1.   

    typedef struct hostent {  
    char FAR* h_name;  
    char FAR  FAR** h_aliases;  
    short h_addrtype;  
    short h_length;  
    char FAR  FAR** h_addr_list;
    } hostent;可见 h_addr_list是个二级指针,指向一个字符串的指针
    所以前面多个星*,是取出这个指向字符串的指针做强制转换,转换后再取其值
    (LPSTR)&dotIP  ,dotIP不是LPSTR类型,所以要取其地址,还要作强制转换才能够给函数识别出来
      

  2.   

    LPSTR其实就是const char*
    还想说一点:这都是纯C的风格,不是c++.
      

  3.   

    :(LPSTR)&dotIP
    &dotIP是去变量dotIP的地址,这个参数是一个指针,取地址。(LPSTR)表示这是一个字符指针类型的参数。用在这里表示强制转换。
      

  4.   

    楼主请不要以自己的水平来随便猜测别人的水平,CSDN说一句藏龙卧虎绝对不需,更何况这个问题……?