C++语法——strlen和sizeof

 

//数组
char str[20000]="0123456789";
int a=strlen(str); //a=10
int b=sizeof(str); //而b=20000
char ss[] = "0123456789";
cout << sizeof(ss) << endl; //结果 11 ===》ss是数组,数组大小是11(\0也占一位)
cout << sizeof(*ss) << endl; //结果 1 ===》*ss 是第一个字符
int a[10]
sizeof(a) //结果是40
//函数参数为指针或者数组,数组传递进去退化为指针,sizeof不能测出传进去的数组大小

//指针
char* ss = "0123456789";
sizeof(ss) //结果 4 char*类型,所以是4
sizeof(*ss) //结果 1
strlen(ss) // 10 
char aa[200]={'\0'};
cout<<strlen(aa)<<endl;  //0 

char Array[2000] = {'0'};  //这样初始化 第二位默认为\0
sizeof(Array) //2000
char *p = Array;
strlen(p) // 1
sizeof(p)// 4

char * p=new char[6];
sizeof(p)  //4  sizeof指针

//结构体
class X
{
	int a;
	int b;
	char c;
};
X x;
cout << sizeof(x); //12 计算结构体x占的内存大小,  内存自动补齐


//sizeof返回变量占的空间  传递数组名字就返回数组占的空间,传递指针相当于返回指针变量占的空间
//strlen返回字符个数  传递指针传递数组都从第一位开始计数 找到\0为止 不算\0 

 

参考:

https://www.cnblogs.com/XuanChan/p/10660489.html

https://baike.baidu.com/item/strlen/2737?fr=aladdin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值