C语言 关于IP地址的程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:57:06
有个C语言的问题求助帮忙
问题是这样的
某个4个字节的IP地址存放在一个整数a中,输入a的值,输出对应的ip地址。
(构造一个结构体和共用体来解决)
一直没怎么看明白。。希望大家来帮忙解决一下
left of'.testu' must have struct/nuion type。。。怎么回事啊。。。

这里有个隐含假设,即,整数也是用四字节表示的。这样的假设下,四字节IP地址和整数在内存中无差别。
比如:

#include <stdio.h>
typedef struct IPAddr_
{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
}IPAddr_t;

typedef union u_
{
int x;
IPAddr_t y;
}u; // 整数与IP地址用共用体表示

void main()
{
u testu;
testu.x = 303199946; // 也可用“scanf("%d",&(testu.x)); ”输入整数

// 输出IP地址202.118.18.18
printf("%d.%d.%d.%d",testu.y.a,testu.y.b,testu.y.c,testu.y.d);
return;
}

1楼正解。

不错

不懂 高深