请教2段代码,请解释下
以下2段代码总感觉怪怪的,为啥这么写,有什么好处?实在不懂,请解释下,谢谢
unsigned our_inet_addr(cp)
char const* cp;//这是是什么写法???
{
return inet_addr(cp);
}
NetAddress** fAddressArray;
void NetAddressList::assign(unsigned numAddresses, NetAddress** addressArray)
{
fAddressArray = new NetAddress*[numAddresses];//这个是什么写法,什么作用,请解释下
if (fAddressArray == NULL)
{
fNumAddresses = 0;
return;
}
for (unsigned i = 0; i < numAddresses; ++i)
{
fAddressArray[i] = new NetAddress(*addressArray[i]);//这个是什么写法,什么作用,请解释下
}
fNumAddresses = numAddresses;
}
[解决办法]
char const* cp;在那个位置我也没看懂,它不过是一个常量字符指针
后面两句是动态创建二维数组的一般写法
[解决办法]
第一个是 老式的C函数声明
第二三个见1L
[解决办法]
第一处是常量指针,表示cp指向的字符串是常量不能更改;
第二处是用new操作符创建一个NetAddress类型的指针数组,长度是numAddresses;
第三处类似第二处,创建一个长度为(*addressArray[i]的数组,数组元素类型是NetAddress,其中addressArray[i]表示第i个数组内容(addressArray是双重指针)所以前边用一个*解引用操作,返回其指向的数据内容
[解决办法]
就是new的用法
第一个new一个数组,数组里面的元素都指向指针(NetAddress*类型)
第二个是new一个NetAddress对象,对象用 *addressArray[i] 来初始化