sizeof 用法部分总结

#include<iostream>
#include<string.h>
using namespace std;
struct s1
{
	char a[8];
};

struct s2
{
	double d;
};

struct s3
{
	s1 s;
	char a;
};

struct s4
{
	s2 s;
	char a;
};
struct s5
{
	int i : 8;
	int j : 4;
	int a : 3;
	double b;
};

int main(){

	int  *p1;
	cout << sizeof(p1) << endl;
	cout << sizeof(*p1) << endl;
	cout << "~~~~~~~~~~~~~~~~~~~~~~" << endl;
	char  *p2;
	cout << sizeof(p2) << endl;
	cout << sizeof(*p2) << endl;
	cout << "~~~~~~~~~~~~~~~~~~~~~~" << endl;
	int a[10];
	char b[] = "hello";
	string s = "hello";
	cout << sizeof(a) << endl;   //
	cout << sizeof(b) << endl;   //计算‘\0’
	cout << strlen(b) << endl;   //不计算‘\0‘
	cout << sizeof(s) << endl;
	cout << s.size() << endl;
	cout << s.capacity()<<endl;
	cout << "~~~~~~~~~~~~~~~~~~~~~~" << endl;
	cout << sizeof(s1) << endl; // 8
	cout << sizeof(s2) << endl; // 8
	cout << sizeof(s3) << endl; // 9
	cout << sizeof(s4) << endl; // 16;
	cout << sizeof(s5) << endl; // 16;
	system("pause");
	return true;
}

  

时间: 2024-11-05 18:36:20

sizeof 用法部分总结的相关文章

sizeof用法总结

1. 定义: sizeof是何方神圣? sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数. MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of ty

sizeof()用法总汇

sizeof()功能:计算数据空间的字节数 1.与strlen()比较       strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素.       而sizeof计算数据(包括数组.变量.类型.结构体等)所占内存空间,用字节数表示. 2.指针与静态数组的sizeof操作    指针均可看为变量类型的一种.所有指针变量的sizeof 操作结果均为4. 注意:int *p; sizeof(p)=4;  但sizeof(*p)相当于sizeof(int)

sizeof()用法汇总

sizeof()功能:计算数据空间的字节数 1.与strlen()比较       strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素.       而sizeof计算数据(包括数组.变量.类型.结构体等)所占内存空间,用字节数表示. 2.指针与静态数组的sizeof操作       指针均可看为变量类型的一种.所有指针变量的sizeof 操作结果均为4. 注意:int *p; sizeof(p)=4;                   但size

sizeof用法

sizeof sizeof常用于统计数据类型大小,如:int,double,char,float等等.但是它的统计通过一个实 验,让我有了不可思议的发现,平常我们可以用sizeof(int)来测试,int类型占用内存是不是4个byte. 对于统计字符串,感觉上是没有统计最后的'\0';事实验证确实没有统计如: char zifu[] = {W,e,i,x,i,a,n,g,f,e,i} 利用sizeof(zifu)或sizeof zifu统计第一个字符直到最后一个字符占用的总大小,具体的解释是:

C 字符常量 sizeof用法

sizeof一共有3种形式(以64位编译器为例) 如何查看编译器是多少位? sizeof(void *); sizeof( 变量\常量 ) sizeof(10); // 长度为4 char c = 'a'; sizeof(c); // 长度为1 sizeof ('a') // 长度为4,字符常量在内存中占4个字节,存放的是字符的ASCII码(整型数据). C语言规定所有字符常量都作为整型量来处理. sizeof  变量\常量 sizeof 10; char c = 'a'; sizeof c;

c/c++ struct的大小以及sizeof用法

直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则:(在没有#pragma pack宏的情况下) 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储. 2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有s

C语言中sizeof的用法

今天同学问我sizeof可不可以计算结构体的大小,我竟然忘了C语言还有sizeof这个函数,我是多久没有写程序了啊!!!惭愧,上研究生后写嵌入式方面的程序就特别少了,看来以后还要经常来练练手才行.现在转载一篇看到的sizeof用法的文章,与大家分享(第一篇技术类的文章竟然是转载的,惭愧). #include "stdio.h" #include "string.h" #include "stdlib.h" int main() { short i

sizeof的用法

Sizeof用法 首先说明一下sizeof是c语言运算符,在编译阶段就执行了,和普通的+.-.*等一样. Sizeof有二种语法形式:1.sizeof(对象)或sizeof对象2.sizeof(类型)(可以是抽象类型也可以是一般类型) 举个例子就明白了,int i.可以用sizeof i或者sizeof(i),求得的是i这个对象所占用空间字节数,显然是4:sizeof(int),求得的是这个object类型的空间大小.比如char是1个字节. Sizeof有几种常出错用法,分别是:1,求数组大小

【好文转载c++】 sizeof 使用的经典总结

为了在人面前畅快的吹牛逼,你必须学会背后努力  -----张小二. 写在转载之前: sizeof到底是多少?本来我没有关注,只是有次室友问了我几个sizeof的问题,我被问住了,他当时问我了sizeof(a);是数组,则是数组的字节大小, 如果  void  fun(int a[],int len) {    cout<<sizeof(a)<<endl;//是多少呢,退化为指针,是32位. }   首先你看看http://blog.163.com/[email protected]