当前位置: 技术问答>linux和unix
关于const char 如何指向不同的字符串
来源: 互联网 发布时间:2016-11-13
本文导语: 在写客户端程序的时候,用到了函数sned,我想发送不同的字符串到服务器端。可是套接字send(int sockets,const char *buf,int lenth,int flags),buf是一个const char类型的,那应该怎么指向不同的字符串呢? | ...
在写客户端程序的时候,用到了函数sned,我想发送不同的字符串到服务器端。可是套接字send(int sockets,const char *buf,int lenth,int flags),buf是一个const char类型的,那应该怎么指向不同的字符串呢?
|
char str[1024];
strcpy(str, "hello");
send(sockets, str, 5, flags);
strcpy(str, "world");
send(sockets, str, 5, flags);
这样是可以的。
const char *buf 只有在send函数内部才有作用,表示send函数不会修改buf的内容,send函数以外的他就管不着了。
调用send的时候,传给buf的参数不是const也可以,比如上面的str。
send(int sockets,const char *buf,int lenth,int flags)
{
buf[0] = '1'; // 这样是不行的
}
strcpy(str, "hello");
send(sockets, str, 5, flags);
strcpy(str, "world");
send(sockets, str, 5, flags);
这样是可以的。
const char *buf 只有在send函数内部才有作用,表示send函数不会修改buf的内容,send函数以外的他就管不着了。
调用send的时候,传给buf的参数不是const也可以,比如上面的str。
send(int sockets,const char *buf,int lenth,int flags)
{
buf[0] = '1'; // 这样是不行的
}
|
const char *buf表示buf指向的内容是不可变的。。。但是buf的值可以变。。也就是说buf是变量。。它的值可以改变。。。但这个值所对应地址的内容是const的。。不能变