c++ 基础学习

本文介绍了在跨平台编程中的一些实用技巧,包括使用size_t代替int提高代码的扩展性,推荐使用memset替代bzero以增强代码的跨平台能力,并讨论了如何正确处理string对象与C风格字符串之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值