如代码。int占有4个字节,char占有1个字节,float占有4个字节,idouble占有8个字节.
# include "stdio.h"
# include "iostream.h"
//sizeof练习
//不同类型所占用内存大小。
void test1()
{
int a=0;
char b='a';
double c=0;
float d=0;
cout<<"int:"<<sizeof(a)<<endl;
cout<<"char:"<<sizeof(b)<<endl;
cout<<"double:"<<sizeof(c)<<endl;
cout<<"float:"<<sizeof(d)<<endl;
}
//数组占用字节,数组的端数与数组类型所占大小相乘
void test2()
{
int a[10]={0};
char b[10];
cout<<"int[10]:"<<sizeof(a)<<endl;
cout<<"char[10]:"<<sizeof(b)<<endl;
}
//指针占用字节,指针为一个地址,一个指针所占内存大小永远为4.
void test3()
{
char *p=NULL;
cout<<"*char:"<<sizeof(p)<<endl;
char arr[10];
p=arr;
cout<<"*char指针指向数组a:"<<sizeof(p)<<endl;
}
void fun(char a[])
{
cout<<"char型数组传递到函数中所占内存大小:"<<sizeof(a)<<endl;
}
struct str
{
int a;
char b;
};
void main()
{
//传递时占得内存大小
char arr1[10];
fun(arr1);//结果为4.因为传递的是一个地址
//结构体
/*根据编译器有所不同,但是基本是以类似分寝室的方法,
以最大内存为基本单位,一次填进,当所剩内存不够时,
再次开辟一个最大内存*/
str st1;
cout<<"结构体内存:"<<sizeof(st1)<<endl;
}