【原创】sizeof运算符总结

  1. sizeof运算符返回一条表达式或一个类型名字的所占字节数,返回值为size_t的常量表达式,注意:sizeof右结合,且为编译时计算,而非运行时
  2. 两种形式:sizeof (type)和sizeof expression
  3. sizeof计算的永远是类型所占字节数,如果是数组则计算数组的长度乘以元素类型字节数;所以对于第二种形式,计算的是expression表达式结果的类型大小,而不是表达式的值
  4. sizeof运算符不是实际求表达式的值,所以sizeof *p,即使p是无效指针,也是安全的,得到的是*p的类型大小,注意:不是指针的大小
  5. vector等容器对象进行sizeof运算,只会返回该类固定部分的大小,不会计算容器中元素占用空间
  6. 函数的数组形参进行sizeof运算时,作为指针进行计算;其他地方正常,计算数组大小则为数组的长度乘以元素类型字节数

c++11下新用法:计算类公有成员大小,无需提供具体的类,因为不需要进行运算;注意:不能对私有成员或保护成员进行sizeof,因为它们在外部不可访问

1 class A{
2 public:
3     int a;
4 };
5 sizeof A::a

本文链接:【原创】sizeof运算符总结 http://www.cnblogs.com/cposture/p/4935196.html

时间: 2024-11-03 22:33:43

【原创】sizeof运算符总结的相关文章

c/c++ sizeof运算符详解以及对象大小

原文:http://krystism.is-programmer.com/posts/41468.html 学过c的都知道sizeof运算符.不过还是需要注意以下几点.先从c的sizeof说起: 1. sizeof 是运算符,而不是函数.虽然我们习惯sizeof(...),但( )并不是必需的,它只是表示优先级.我们把sizeof后面的目标叫对象或者操作数.本文约定就叫sizeof对象. 2. 当sizeof 的对象是表达式时,求的大小是表达式返回值的类型大小,但并不计算表达式的值,比如 ? 1

sizeof运算符、malloc函数及free函数

一.sizeof运算符的用法 1.sizeof运算符给出某个类型或变量在内存中所占据的字节数. int a;  sizeof(a)=4;  //sizeof(int)=4; double b;  sizeof(b)=8;  //sizeof(double)=8; 2.数组的sizeof值等于数组所占用的内存总字节数. 如:char a[] = "yes";  sizeof(a);  // 结果为4,字符末尾还存在一个NULL终止符 int a[3];  sizeof(a);  // 结

C语言之字符集、ASCII码和sizeof运算符

一 字符集和ASCII码 结论:字符本质上也是一个整数,每个字符都有唯一一个与之对应的整数, 比如说小写的a对应97,b对应98,c对应99,大写的A对应65,B对应66,C对应67 所以字符对应的那个数字,也可以称之为ASCII码值 二 sizeof运算符 sizeof: 用法:sizeof(类型);  sizeof(变量); sizeof(常量); 可以计算这个类型或者变量或者常量占用的字节数 tips: sizeof结果是unsigned long类型(unsigned long; 无符号

sizeof运算符来获取各种数据类型在内存中所占字节数--gyy整理

C++并没有规定各种数据类型在内存中的存储大小,依赖于不同的编译器的不同而不同,要想获知当前编译器对各种数据类型分配的大小,可以通过sizeof运算符来获取. 使用方法1: sizeof(数据类型)   使用方法2: sizeof(变量名   或 常量名 或 表达式  ) sizeof(int)      或 int  a: sizeof(a) [cpp] view plain copy //数据类型空间分配情况 #include <iostream> using namespace std;

sizeof运算符

sizeof运算符返回一条表达式或一个类型名字所占的字节数.sizeof运算符满足右结合律,其所得的值是一个size_t类型的常量表达式.运算符的运算对象有两种形式: sizeof(type) sizeof expr 在第二种形式中,sizeof返回的是表达式结果类型的大小.与众不同的一点是,sizeof并不实际计算其运算对象的值: Sales_data data,*p; siizeof(Sales_data);   //存储Sales_data类型的对象所占的空间大小 sizeof data;

C++ Prime:sizeof运算符

sizeof运算符的结果部分地依赖于其作用的类型: 对char或者类型为char的表达式执行sizeof运算结果得1: 对引用类型执行sizeof运算得到被引用对象所占空间的大小: 对指针执行sizeof运算得到指针本身所占空间的大小: 对解引用指针执行sizeof运算得到指针指向的对象所占空间的大小,指针不需有效: 对数组执行sizeof运算得到整个数组所占空间的大小,等价于数组中所有的元素各执行一次sizeof运算并将所得结果求和: 对string对象或vector对象执行sizeof运算只

C#基础关键字篇-sizeof 运算符

sizeof 运算符返回由给定类型的变量占用的字节数.被指定为 sizeof 的操作数的类型必须为非托管类型. 从 C# 2.0 版开始,将 sizeof 应用于内置类型不再要求使用 unsafe 模式. 不能重载 sizeof 运算符. sizeof 运算符的返回值是 int 类型. 下表列出了一些常量值,这些值对应于以某些内置类型为操作数的 sizeof 表达式. 对于所有其他类型(包括结构),sizeof 运算符只能在不安全代码块中使用,sizeof 运算符的结果是由实现定义的,并且属于值

【ThinkingInC++】25、用sizeof运算符可以确定struct的长度。

/** * 功能:用sizeof运算符可以确定struct的长度. * 时间:2014年8月18日08:10:14 * 作者:cutter_point */ #include"CLib.h" #include"CppLib.h" #include<iostream> using namespace std; struct A { int i[100]; }; struct B { void f(); }; void B::f(){} int main()

坑爹系列:sizeof运算符

C语言里的sizeof关键字用于返回变量的类型宽度(变量所占的字节个数).例如: #include <stdio.h> int main() { int i = 0; int size = sizeof i; printf("size of i is: %d",size); return 0; } 会在控制台打印出int类型的变量i在内存中所占的字节的个数.我机器上的执行结果是: size of i is: 4 从上面这个例子看,sizeof蛮好用的,同时你可能觉得以后你需