关于关键字sizeof
在网上看到一些问题,用VC++6.0编译后发现:int a[100]; /* 先定义一个数组 */
sizeof(a[100]) /* 所求出来的是4 */
sizeof(a) /* 所求出来的是400 */
不是太理解
※sizeof(a[100])求出来4,sizeof(a)表示计算a这个数组所占字节数,sizeof(a[100])难道不是表示计算数组所占字节数么?那么是代表什么? 答案:a[100]表示一个越界的元素
int a;
char b,c[100];
sizeof(&a)=4
sizeof(&b)=4
sizeof(&c[0])=4
※如果sizeof()内是地址,表示的值是什么?为什么以上计算结果都为4? 答案:地址都是一串整形数字,所以地址被当成整形来计算,所以为4。
以上问题已解决
==========================================================
未解决的问题
enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
※sizeof(ColorVal)的值是什么?为什么?
[ 本帖最后由 果沫 于 2013-2-1 10:22 编辑 ]