您的位置:首页 > 其它

sizeof()深入理解

2012-03-03 13:27 225 查看
最近一直有准备面试,对于基础知识的掌握程度还真的得好好补一下。sizeof(type)是经常遇到的一类笔试题,为了能以不变应万变,还是将sizeof的原理搞清楚最省事。

如下原则须谨记:
1. sizeof()不是函数,而是一个操作数,即关键词(相信这一点大部分人都很诧异);
2. sizeof() 返回结构体、数组、变量的实际大小,但是对于指针,只能返回指针所占用的内存的大小,不能返回指针所指向的内存的大小,即不能返回动态分配的内存空间的尺寸;  

练习题,巩固所学:

#include <stdlib.h>
#include <stdio.h>

char* string = "Hello";
int var = 100;
int* pint = NULL;
int** ppint = NULL;
int array[100];

int array_func(char para[100])
{
return sizeof(para);
}

int malloc_func(void)
{
int* p = NULL;
return sizeof(p = malloc(100));
}

int main(int argc,char* argv[])
{
char para[100];

printf("string size:%d\n",sizeof(string));
printf("var size:%d\n",sizeof(var));
printf("pint size:%d\n",sizeof(pint));
printf("ppint size:%d\n",sizeof(ppint));
printf("array size:%d\n",sizeof(array));

printf("array func size:%d\n",array_func(para));
printf("malloc func size:%d\n",malloc_func());

return 1;
}


运行结果是什么呢?认真想一想再回答:>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: