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数组的实现形式是二维数组指针,所以数组每一维的长度不固定
标签:string,int,知识,char,str,数组,一些,sizeof From: https://www.cnblogs.com/uestc-du/p/17063288.html