sizeof有话说:“其实你不懂我的心”

来源:互联网 发布:百度推广淘宝店铺 编辑:程序博客网 时间:2024/05/01 03:38

先做个选择题:sizeof是关键字还是函数呢?

请看以下这例:

 int i=0;
A),sizeof(int);  B),sizeof(i);  C),sizeof int;  D),sizeof i;
毫无疑问,32 位系统下A),B)的值为4。那C)的呢?D)的呢?

调试后发现,D)也是4,而C)是出错?疑问

因为函数名后面没有括号是不行的哦~所以sizeof是关键字,不是函数~
记住:sizeof  在计算变量所占空间大小时,括号可以省略,
            而计算类型(模子)大小时不能省略。
 
 
小练习:考考你对sizeof掌握了没?得意
 
(以下在32位机系统下eclipse编译) 
int *p = NULL; 
char *q=NULL;
sizeof(p)的值是多少?
sizeof(*p)呢? 
sizeof(q)呢? 
sizeof(*q)呢? 
int a[100]; 
sizeof (a) 的值是多少? 
sizeof(a[100])呢?  
sizeof(&a)呢? 
sizeof(&a[0])呢? 
int b[100]; 
void fun(int b[100]) 

sizeof(b); // sizeof (b) 的值是多少? 
 
不同编译环境可能有所不同,欢迎跟帖交流~
( ⊙ o ⊙ )啊!答案在下面哦~
 
答案:
sizeof(p)=4
sizeof(*p)=4
sizeof(q)=4
sizeof(*q)=1
sizeof(a)=400
sizeof(a[100])=4
sizeof(&a)=4
sizeof(&a[0])=4
sizeof(b)=4
原创粉丝点击