c++ 基础学习

1 size_t 可以跨平台,替代int或unsigned int,代码扩展性更好

2 void  bzero(void* s, int n)只能用于linux平台,最好使用跨系统的void memset(void * s, int c, size_t len)。

 如果非要在windows下用,可以加上

#define bzero(a, b)   memset(a, 0, b)

3 const_cast<char*>用于将const char*(如string.c_str())赋值给char*,解除const限制,如

string s="123456";
char* p=const_cast<char*>(s.c_str());

但const char* 却可以直接赋值给char*


另外:

c_str()函数返回一个指向正规C字符串的 指针, 内容与本string串相同.
这是为了与 c语言兼容,在c语言中没有 string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str();
这样才不会出错,c_str()返回的是一个临时 指针 ,不能对其进行操作
char c[20];
string s="1234";
strcpy(c,s.c_str());


猜你喜欢

转载自blog.csdn.net/weixin_40554881/article/details/80293607