【冤枉的原因】:常常被人们误认为函数,其实不然。
【用例子证明】题目如下:
题目:下边哪项表述是错误的?
int i;
A .sizeof(int) B.sizeof(i) C.sizeof int D.sizeof i
当我们在计算机上进行调试的时候发现,D居然是对的,说明什么问题,他肯定不是函数,函数没关键字咋能行呢?想想看在int前边可以加static、unsigned、signed修饰,怎么可能用sizeof修饰呢?所以C选项肯定是错误的。
【sizeof的扩展】
既然sizeof是用于侧变量或类型所占的资源数目,是否可以对下边的内容进行测试呢?
sizeof((int*)malloc(4*sizeof(int)));
sizeof(void);
答案是:以上两者不能测出,因为sizeof可以测出的是在编译阶段就可以确定的东西。而malloc()在运行阶段才可以确定,所以是测不出的。
【用例子证明】题目如下:
题目:下边哪项表述是错误的?
int i;
A .sizeof(int) B.sizeof(i) C.sizeof int D.sizeof i
当我们在计算机上进行调试的时候发现,D居然是对的,说明什么问题,他肯定不是函数,函数没关键字咋能行呢?想想看在int前边可以加static、unsigned、signed修饰,怎么可能用sizeof修饰呢?所以C选项肯定是错误的。
【sizeof的扩展】
既然sizeof是用于侧变量或类型所占的资源数目,是否可以对下边的内容进行测试呢?
sizeof((int*)malloc(4*sizeof(int)));
sizeof(void);
答案是:以上两者不能测出,因为sizeof可以测出的是在编译阶段就可以确定的东西。而malloc()在运行阶段才可以确定,所以是测不出的。