struct ifaddrs **ifap;
struct ifaddrs *ifa;
int n;
n = getifaddrs(&ifa);
*ifap = ifa;
for (ifa; ifa!= NULL; ifa = ifa->ifa_next) 
{
	对地址链表的处理函数
}


    使用getifaddrs获取本机地址链表,头结点为ifa。
    调用双重指针ifap,指向ifa;单重指针ifa,指向地址链表。

    在for循环中使用ifa进行遍历,遍历结束后,ifa指向null。但是ifap仍然指向地址链表头结点。

    因为在语句

*ifap = ifa;
之后,*ifap并不是一个地址,而是一个变量。*ifap作为变量,存储着ifa当时的地址的值(如0x05f0)。之后ifa进行遍历时,*ifap作为一个变量,不发生变化。


posted on 2015-01-15 17:46  hh6plus  阅读(205)  评论(0编辑  收藏  举报