0

inet_pton函数将地址转换为struct in_addr. 有这个:

#include <stdio.h>
#include <arpa/inet.h>

int main(){
    char str[4];
    inet_pton(AF_INET, "1.2.3.4", (int*)str);
    printf("%i\n", *((int*)str));
}

我明白了

67305985

所以地址1.2.3.4被转换为价值的“网络地址”(inet_pton的手册页)67305985,我不明白。我知道该函数将转换后的值保存为 type of struct in_addr,但这基本上是一个 int ,所以我可以将它转换为 an int(我做了)并得到这个废话。那么我应该如何解释67305985address的值1.2.3.4

4

1 回答 1

1

您得到的值是以小端字节顺序解释的字节值 1、2、3 和 4 的十进制表示。

如果您单独打印每个字节,您会看到它们包含值 1、2、3 和 4。

char str[4];
int i;
inet_pton(AF_INET, "1.2.3.4", (int*)str);
for (i=0; i<4; i++) {
    printf("%d\n", str[i]);
}

输出:

1
2
3
4
于 2020-06-24T12:15:12.573 回答