在C语言中,可以使用指针来实现整数与IP地址的互相转换。
从整数转换为IP地址:
- 定义一个存储IP地址的数组,并定义一个指针变量,该变量指向该数组。
- 将整数的每个字节存储到数组的每个元素中。
- 使用sprintf函数,将数组中的元素格式化为IP地址的格式。
从IP地址转换为整数:
- 使用inet_addr函数将IP地址转换为整数。
- 定义一个整数变量,并将inet_addr函数的返回值存储在该变量中。
代码示例:
#include <stdio.h>
#include <arpa/inet.h>
int main() {
unsigned int num = 0xC0A80001; // 192.168.0.1
unsigned char *p = (unsigned char *)&num;
printf("IP address: %d.%d.%d.%d\n", *p, *(p + 1), *(p + 2), *(p + 3));
char str[] = "192.168.0.1";
unsigned int num2 = inet_addr(str);
printf("Number: 0x%x\n", num2);
return 0;
}