关键字sizeof
【摘要】
sizeof用来求出所占的字节数
sizeof是个关键字,不是函数,sizeof是在编译期间求值。
(1)基本类型和类的大小
cout<<sizeof(char)<<" "<<sizeof(int)<<" "<<sizeof(string)<<" "&l...
sizeof用来求出所占的字节数
sizeof是个关键字,不是函数,sizeof是在编译期间求值。
(1)基本类型和类的大小
cout<<sizeof(char)<<" "<<sizeof(int)<<" "<<sizeof(string)<<" "<<sizeof(vector<int>);
1 4 32 20
类的大小都是固定的,和对象无关,具体怎么算没仔细研究,好像是只和成员变量和虚函数表有关。
(2)数组的大小是数组所占内存的总大小,指针的大小是系统的大小
代码:
int a[]={0,1,2,3,4,5};
int *p=a;
cout<<sizeof(a)<<" "<<sizeof(p);
输出:
24 4
PS:
我们用64的win10操作系统的时候,指针应该是8个字节,但是编译器往往选择编译成32位的程序,所以这指针还是4个字节。
(3)数组和指针作为参数传递时,都是传递指针
代码:
int getSize(int x[])
{
return sizeof(x);
}
int getSize2(int* p)
{
return sizeof(p);
}
int main()
{
int a[]={0,1,2,3,4,5};
int *p=a;
cout<<getSize(a)<<" "<<getSize(p)<<" "<<getSize2(a)<<" "<<getSize2(p);
return 0;
}
输出:
4 4 4 4
(4)char数组表示的字符串
代码:
char s1[]="abcdef";
char s2[]="";
cout<<sizeof(s1)<<" "<<sizeof(s2);
输出:
7 1
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/105667411
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)