*buf+int类型的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:21:47
char* buf;
int nDataLen;

nReadLen = recv(s, buf + nDataLen, 1, 0);//每次接收一个字节

buf+nDataLen的值得出了什么结果?
还是先用BUF接收内容,然后nDataLen进行+1

就是接受数据,并将数据放到buf[nDataLen]这个地址
比如说char *buf=new char [100]
那么recv(s,buf+10,1,0)
表示将所得数据放到以buf[10]开始的内存区域,即从buf[10],[11],[12]依次类推

recv函数的第二个参数buf是用于接收数据缓冲区的地址,
buf+nDataLen表示buf指向的地址偏移nDatalen后的地址。

nReadLen = recv(s, buf + nDataLen, 1, 0);
就表示连续向buf指向的地址写入接收到的数据,先向buf地址写第一个数据,然后向下一个地址写第二个数据,再向下一个地址写第三个数据...

指针加整数得到的就是指向原来指针后面第整数个元素的指针