C/C++中的sizeof相关【面试?】
2014-09-12 19:29
281 查看
数组和指针的细微区别
输出结果:
40
4
4
字符串相关:(完美笔试)
8
4
2
1
函数:
参考文章地址: http://www.youranshare.com/blog/sid/90.html
#include <iostream> using namespace std; //sizeof的指针运算值相关 int GetSize(int data[]){ return sizeof(data); } int main() { int list[] = {1,3,36,56,76,34,61,76,12,4};// array of 10 elements int list_size = sizeof(list); int *list2 = list; int size2 = sizeof(list2); int size3 = GetSize(list); cout<<list_size<<endl; cout<<size2<<endl <<size3; return 0; } /** * 分析: * list_size是一个数组,sizeof(list_size)是求数组的大小,这个数组包含10个整数,每个整数占4个字节,因此是40个字节。 * size2声明为指针,尽管它指向list,但是它的本质还是一个指针,在32位系统中对任意指针求sizeof,得到的结果都是4. * size3。在C/C++中当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针,size3的结果仍为4 */
输出结果:
40
4
4
字符串相关:(完美笔试)
#include <iostream> using namespace std; //字符串相关的sizeof void func(char p[10]) { printf("%d\n",sizeof(p)); // 4 } void func(char (&p)[10]) { printf("%d\n",sizeof(p)); // 10 } int main(void) { char array[] = "abcdefg"; printf("%d\n",sizeof(array)); // 8 char *p = "abcdefg"; printf("%d\n",sizeof(p)); // 4 printf("%d\n",sizeof(char[2])); // 2 printf("%d\n",sizeof(char&)); // 1 return 0; }输出:
8
4
2
1
函数:
#include <iostream> using namespace std; class CBase{ public: void func(){ Print(); } virtual void Print(){ cout<<"CBase::Print"<<endl; } }; class CDerived:public CBase{ public: virtual void Print(){ cout<<"CDerived::Print"<<endl; } }; int main(void) { CDerived c; CBase *p = &c; cout<<sizeof(*p)<<endl; // 4 cout<<sizeof(p)<<endl; // 4 sizeof(指针) == 4 cout<<sizeof(c)<<endl; // 4 return 0; }
浅谈C++结构体和类,对象的大小该如何计算?
参考文章地址: http://www.youranshare.com/blog/sid/90.html
相关文章推荐
- 【C++】sizeof相关【总结篇】
- c++面试相关
- C/C++语言基础面试相关
- C/C++语言sizeof相关计算
- C++常见问题(三)——宏定义、const、static、sizeof的相关实例
- C++中关于sizeof的相关应用
- C++面试中常被问的sizeof问题总结
- C/C++ 笔试面试(1)—— sizeof
- C++笔试总结-面试笔试常考题型(一)指针-引用-宏定义-sizeof
- 【C++后台开发面试】网络相关
- 面试常考的C/C++知识点sizeof
- C/C++ 笔试面试(1)—— sizeof
- C/C++可能的面试问题(2)--再谈sizeof()
- C++笔试总结-面试笔试常考题型(一)指针-引用-宏定义-sizeof
- 个人面试笔记:Lua与C++调用相关
- 多态,虚函数,纯虚函数,抽象类的相关问题(c++面试常见题目)
- C++面试之类的sizeof大小
- C/C++ 笔试、面试题目汇总1——代码相关
- c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)
- 【C++后台开发面试】C++语言相关