sizeof用法、strlen用法、string用法(代码经验记录1)

本文详细介绍了C++中sizeof操作符的常见用法,包括数组、指针、函数、结构体和共用体的使用注意事项。接着讨论了strlen函数的功能及其潜在的安全风险,并指出只能用于字符数组。最后探讨了C++中的string类,强调其与C风格字符串的区别,并讲解了string对象与字符串字面值的拼接、string到int的转换以及stringstream在数据类型转换中的应用。
摘要由CSDN通过智能技术生成

一.sizeof用法
sizeof(对象)或sizeof(类型)
Sizeof有几种常出错用法,分别是:
(1)求数组大小
(2)求指针大小
(3)对函数使用
(4)求结构体大小
(5)对共用体union使用
sizeof求数组大小要看所在的环境,一般求的是你定义时候的声明的数组大小空间,其余情况如下

void fun1(int a[]){
   
	cout<<sizeof(a)<<endl;
}
int main(){
   
	int a[6]={
   0,1,2,3,4,5};
	fun1(a);
	cout<<sizeof(a)<<endl;
}

输出的结果是 8 24。数组会被转换成指针,所以当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针。32位系统默认指针大小为4个字节,64位系统默认指针大小为8个字节。

char n[] = "abc";
cout<<sizeof(n)<<endl;

char c[20];
cout<<sizeof(c)<<endl;

输出的结果是4 20,字符数组n在字符串abc后加上’\0’

char s[6] = {
   '1','2','3','4','5','6'};
cout<<s<<endl;
cout<<sizeof(s)<<endl;
	
char v[6] = {
   '1','2','3','4','5','\0'};
cout<<v<<endl;
cout<<sizeof(v)<<endl;
输出结果
1234566
12345
6

之所以字符数组s的输出会有乱码,因为从s首地址开始输出碰到’\0’或’ ‘(停止符,空格等才停下),如果s只初始化3、4位,那么剩余未初始化的会自动赋值’\0’

char a[5] =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值