sizeof 有关用法
来源:互联网 发布:c语言中如何判断闰年 编辑:程序博客网 时间:2024/06/03 18:52
测试系统是64位
void test15()
{
struct
{
short a1;
short a2;
short a3;
}A;
struct
{
long a1;
short s2;
}B;
char *s1="012";
char s2[] = "012";
char s3[100] = "012";
int s4[100];
char q1[] ="abc";
char q2[] = "a\n";
char *q3 = "a\n";
char *s5 = (char*)malloc(10);
void *s6 = (void*)malloc(10);
cout<<sizeof(s1)<<endl;
cout<<sizeof(s2)<<endl;
cout<<sizeof(s3)<<endl;
cout<<sizeof(s4)<<endl;
cout<<sizeof(s5)<<endl;
cout<<sizeof(s6)<<endl;
cout<<sizeof(q1)<<endl;
cout<<sizeof(q2)<<endl;
cout<<sizeof(q3)<<endl;
cout<<sizeof(A)<<endl;
cout<<sizeof(B)<<endl;
}
8
4
100
400
8
8
4
3
8
6
16
void test16()
{
class B
{
private:
char c1;
int a1;
char c2;
};
class C
{
private:
int a1;
char c1;
char c2;
};
cout<<sizeof(B)<<endl; //12
cout<<sizeof(C)<<endl; //8
}
class D
{
public:
int a;
static char c;
D();
~D();
};
void test17()
{
cout<<sizeof(D)<<endl; // 4
}
void test18()
{
class a{};
class a2{};
class b:public a
{};
class c:public virtual b
{};
class d: public a,public a2
{};
cout<<sizeof(a)<<endl;
cout<<sizeof(b)<<endl;
cout<<sizeof(c)<<endl; //虚继承涉及虚表(虚指针)
cout<<sizeof(d)<<endl;
}
1
1
8
1
void test19()
{
class base
{
public:
base(){};
~base(){}
virtual void f(){cout<<"base\n";}
void g2(){}
};
class der :public base
{
public:
der(){}
~der(){}
virtual void f(){cout<<"der\n";}
};
base b;
der d;
base *p = new der;
cout<<sizeof(base)<<endl;
cout<<sizeof(der)<<endl;
}
8
8
测试机器32位
int getsize(int data[])
{
return sizeof(data);
}
void test()
{
int data1[] = {1,2,3,4,5};
int size1 = sizeof(data1);
int *data2 = data1;
int size2 = sizeof(data2);
int size3 = getsize(data1);
printf("%d %d %d\n",size1,size3,size3);
}
结果为
20 4 4
当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针。
- sizeof 有关用法
- 解析一个有关sizeof用法的题目--sizeof(i++)
- 有关sizeof的问题
- 有关sizeof的讨论
- 有关sizeof()的实现
- sizeof用法
- sizeof用法
- sizeof 用法
- Sizeof用法
- sizeof 用法
- Sizeof用法
- sizeof 用法
- sizeof用法
- sizeof用法
- sizeof用法
- sizeof用法
- sizeof 用法
- sizeof用法!
- C10K问题
- 网站全文检索--Solr
- 解决图片错误问题
- 数据结构与算法分析 c++ P75 Vector 实现
- 二分贪心—T
- sizeof 有关用法
- 线段树
- C++中*与&的区别
- Java基础知识点总结
- 详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别 (完整代码)
- 【SOA】2.Service Oriented Architecture (SOA)
- SuperMap制图实用指南
- Kinect获取深度图,鼠标点击获取该点三维坐标并保存txt
- HttpClient --post请求数据