string的一些知识

sizeof(string)为32

因为本质上string属于类,类中的成员是char,类的大小就是类中成员变量(非静态)加上指向虚函数表的指针以及指向虚基类表的指针加起来的和。
这里string类只有一个成员变量char *str;没有虚函数以及虚基类,所以sizeof(string)说直接点就是sizeof(char*),至于string str=“abcedefejfoiejofwi”,sizeof(str)会转化成sizeof(string)。sizeof指向变量时,会将括号中的“参数”转化成该“参数”的类型,比如你int a;sizeof(a)先转化成sizeof(int)再进行计算,再比如short func(int *); sizeof(func)会先转化成sizeof(short)再计算。
所以,sizeof(string)以及sizeof(str)都是32

 

string的比较是第一个asiic码之间的比较,string之间有+操作,没有-操作

 

string数组相对较为高效,特别是数组中的数字位数差别很大的时候,因为string数组的实现形式是二维数组指针,所以数组每一维的长度不固定

posted @   纸包鱼  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示