一个关于指针的问题,如果你觉得你的C++指针学到家来.一直来看看这么东西吧!给出回答一定给大分.!是一个关于,WINSOCK的一句代码\如下:
// 将字符串地址转换成32位的IP格式字符串。
ip = inet_ntoa(*(struct in_addr*)(*host->h_addr_list));还有一个句子也帮我说说.
host = gethostbyaddr((LPSTR)&dotIP, INET_LENGTH, PF_INET);表示什么意思:(LPSTR)&dotIP 这个?
// 将字符串地址转换成32位的IP格式字符串。
ip = inet_ntoa(*(struct in_addr*)(*host->h_addr_list));还有一个句子也帮我说说.
host = gethostbyaddr((LPSTR)&dotIP, INET_LENGTH, PF_INET);表示什么意思:(LPSTR)&dotIP 这个?
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类型,所以要取其地址,还要作强制转换才能够给函数识别出来
还想说一点:这都是纯C的风格,不是c++.
&dotIP是去变量dotIP的地址,这个参数是一个指针,取地址。(LPSTR)表示这是一个字符指针类型的参数。用在这里表示强制转换。