最近看到一些网上的sizeof的用法总结,但是自己试了试,发现好多都是错的。
这里重新总结一下,并有程序作证:
下面的程序都是在32位Windows系统下的测试:
#include<iostream>
using namespace std;
int main()
{
cout<<"char 占字节数"<<sizeof(char)<<endl;
cout<<"short 占字节数"<<sizeof(short)<<endl;
cout<<"int 占字节数"<<sizeof(int)<<endl;
cout<<"long 占字节数"<<sizeof(long)<<endl;
cout<<"long long 占字节数"<<sizeof(long long)<<endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
void F1(char a[])
{
cout<<"F1 :"<<sizeof(a)<<endl;
}
void F2(char a[100]){
cout<<"F2 :"<<sizeof(a)<<endl;
}
void F3(char * a){
cout<<"F3 :"<<sizeof(a)<<endl;
}
int main()
{
char a[]="123456789";
char b[10];
char * c="123456789";
char * d=(char*)malloc(10);
cout<<"a :"<<sizeof(a)<<endl;
cout<<"b :"<<sizeof(b)<<endl;
cout<<"c :"<<sizeof(c)<<endl;
cout<<"d :"<<sizeof(d)<<endl;
F1(a);
F2(a);
F3(a);
system("pause");
return 0;
}