关于string类型定义占几个字节??

测试代码:

#include <iostream>
using namespace std;
int main(void)
{
  string name;
  cout<<"sizeof(name)"<<sizeof(name)<<endl;

  return 0;
}

同样的代码运行在不同平台:

首先运行在使用minGW的Qt上输出sizeof(name) = 4; (看成指针了...)

运行在使用MSVC2010的Qt上输出sizeof(name) = 28;

然后是VS2010上输出sizeof(name) = 32;

最后是VS2013上输出sizeof(name) = 28;

搞不懂了~~??

时间: 2024-08-13 04:03:43

关于string类型定义占几个字节??的相关文章

一个int类型究竟占多少个字节

一个int占多少个字节? 这个问题我们往往得到的答案是4. 可是int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes match the ILP32LL model, which is what most compilers adhere to on 32-bit platforms. The LP64 model is the de facto standard for compilers that genera

int类型究竟占几个字节

我最近也在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节.后来,别人查了The C Programming language这本书,里面有一句话是这样的: Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restriction that shorts and ints are at least 16bits, longs

【C++ Primer每日刷】之三 标准库 string 类型

标准库 string 类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件.如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个

redis的string类型

1.简单描述 string类型是redis最基本的类型,而且string类型是二进制安全的,就是说redis的string类型可以包含任何数据,比如jpg图片或者序列化的对象.string类型最大可以存储1G字节数据.另外,string类型可以被部分命令(比如inrc)按照int类型处理.如果只使用string类型,那么redis可以被当做是拥有持久化功能的memcached,但是redis的string类型的操作比memcached多很多,下面来看具体的命令. 2.相关命令(基于4.0.1版本

Java String类型数据的字节长度

问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校验,如果数据是纯英文,没有问题,但是如果数据中包含中文,校验可以通过,但是在数据入库时经常会报数据超长. 问题分析: 既然问题是数据超长,那么问题应该就是出在数据长度校验上,也就是出在String.length()这个方法上,来看看JDK是如何描述这个方法的: [plain] view plain copy length public int

c++类型所占的字节和表示范围

一:数值类型的大杂烩 (1)short.int 和 long 类型都表示整型值.存储空间的大小不同 一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机 器字长(在 32 位机器中 int 类型和 long 类型通常字长是同样的). (2)常量的定义以及表示范围: unsigned   int   0-4294967295                                                  就是2^32-1 int  

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节. -9223372036854775808 9223372036854775807

char[] 和 String 类型占用字节大小问题

在 C 语言中1.char a[10] = {"China"} 中,这个 a 占用多少字节? 答:占用 10 个字节. 解析:上面代码对 a 做了赋值的操作, a[0]='C' ,a[1]='h' ,a[2]='i' ,a[3]='n' ,a[4]='a' ,a[5]='\0',a[6]='\0',a[7]='\0',a[8]='\0',a[9]='\0' 所以,它占用的是 10 个字节. 2.如果单指 ”China“ ? 答:共 6 个字节.China 占 5 个字节,最后以 '\0

java中boolean类型占几个字节

java的基本数据类型中,boolean只有两种状态,默认值为false.取值范围是{true,false},理论上占1bit,实际上: 1.单个的boolean 类型变量在编译的时候是使用的int 类型. boolean a=true;//这个a在JVM中占4个字节即:32位. 2.boolean 类型的数组时,在编译的时候是作为byte array来编译的所以boolean 数组里面的每一个元件占一个字节, boolean[] b = new boolean[10];//数组时,每一个boo