inet_aton标准化IPv4地址

inet_aton假设规范化互联网地址的网点版本? 为什么我会在下面的例子中得到不同的输出值?

 int main(){ char USER_IP[16] = "192.168.002.025"; char USER_IP2[16] = "192.168.2.25"; struct sockaddr_in addr; struct sockaddr_in addr2; inet_aton(USER_IP2, &addr.sin_addr); inet_aton(USER_IP, &addr2.sin_addr); printf("addr.sin_addr:%lu\n", addr.sin_addr); printf("addr2.sin_addr:%lu\n", addr2.sin_addr); return 0; } 

输出:

 addr.sin_addr:419604672 addr2.sin_addr:352495808 

从文档

虚线地址的组成部分可以用十进制,八进制(前导0)或>十六进制,前导0X来指定)

这意味着

 char USER_IP[16] = "192.168.002.025"; 

意味着192 168 2(25八月== 21)和

 char USER_IP2[16] = "192.168.2.25"; 

意味着192 168 2 25