学C/C++进来看看
刚开始学,还没学好.不理解 去年,我学了!!可是到现在都还学懂!!
比如上面的就~~~~~
哎!!!!! 难道真的没人知道? T_T
斑竹在哪里啊 学得不是很好,猜一下:30,4 说真的,对于这些东西平时不是很注意,真的很难做出来哦。
我说说我的思路吧
A是结构体,sizeof(A)的结果为sizeof(int)+sizeof(int)+sizeof(char)*22。
B是一个类,sizeof(B)的结果为sizeof(int)+一个指针的字节。
具体int 、char 、指针的字节是多少我忘了。。。 和机器的编译器也有关的。。。
这段时间接触java,对c的指针变得陌生了。。 版主第一个说错了,第二个说的是对的
看来对虚拟函数还有一定的研究哦。 在32位系统下所有编译器的结果都是一样的。int型是4,char是1,指针也是4 第一个正确的是什么?请指教 第一个是sizeof(int)+sizeof(int)+sizeof(char)*22+Alignement。
为了能够更有效率地在内存中被存取,在32位机器中结构体大小会被调整到4bytes的整数倍,上面sizeof(int)+sizeof(int)+sizeof(char)*22=30,要再加上2个字节达到32字节以更好的存取。
但是如果在结构体中仅仅存在char型变量,则不用加上Alignement。 查了一下资料,这篇文章不错
http://blog.csdn.net/freefalcon/archive/2004/07/28/54839.aspx
但没有找到c++的sizeof的文章。。。楼主有没有?? 楼上的那篇文章对sizeof的总结已经很全了,在C++是只是由于有了虚拟函数或虚拟继承的关系,编译器暗地里为类加上了vptr指针或bptr两个指针。
但这两个指针一定是类中出现虚拟函数或虚拟继承时才会加入。 我运行的结果是
32,8 找工作时就倒了这些东西,看来还是要注意细节 楼上说得没错,这些就是找工的时候被问到过的。 学c语言不是这样用的,拜托 打算学~~~~~~~~~~ 路过,,,顶贴。。。搞旺本版人气。。。 如花,发动多些人来顶嘛 楼上,别学周周叫我如花喇。
页:
[1]
2