100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言中的关键字sizeof用法详解

C语言中的关键字sizeof用法详解

时间:2024-09-06 06:49:00

相关推荐

C语言中的关键字sizeof用法详解

想了解更多精彩内容,快来关注技术小企鹅

其实我们不知道他是32个关键字的其中一个,我们也可以利用其它的办法来确定他到底是不是函数,首先来看下面的代码:

int i=0;

(A)sizeof(int);(B)sizeof(i);

(C)sizeof int; (D)sizeof i;

可以很肯定的是(A)(B)的值都是4,那你想一想(C)(D)的值到底是多少呢?感兴趣可以先在自己的编译器上打一下代码来验证自己的想法。

在32位的系统中通过visual C++6.0或者任意编译器的调试我们其实都可以发现(D)的值也是4,到这里你是不是觉得很奇怪,为什么sizeof不用括号同样可以计算出来,同样的在这里你就应该把它和函数区分开来,很清楚地知道他其实真的不是函数,如果是函数你觉得吧后面的括号省略掉也可以运行吧?我们想不可能吧!

最后我们来看看最后一个(C)的情况,我想如果不出意外的话应该是搬一起报错了吧?本着遇到错误就解决错误的心理,我们来探讨一下为什么他会出错,我们好好地看一下C答案表示的是什么意思:(C)sizeof int 这个是什么玩意?int的前面加一个关键字?表示什么我们不知道,但是明显不正确,一般在int前面我们都会加 unsigned 、const 等关键字,但是真的不能加sizeof。

记住

sizeof在计算变量所占的空间大小时,括号其实是可以省略的。

一般情况下sizeof是在编译的时候求值(C99计算柔性数组所占空间情况除外),所以sizeof(i++)并不会引起什么坏的后果,但是没有意义呀,因为i和i++的类型一样,所以就没有必要写这样迷惑的代码。

“sizeof(i="123456")”,这样的代码也是不被允许的,因为i还是原来的值并不会在括号里面把它赋值为123456,总之你要注意的一点就是sizeof里面的括号不要哦有任何的运算符。

自测题

在这里我们一起来共同探讨几个比较有意思的C语言笔试题目如果你觉得毫无压力那么恭喜你,你对sizeof的理解以及比较透彻:

int *p=NULL;

sizeof(p); 的值是多少?

sizeof(*p);呢?

int a[100];

sizeof(a);的值是多少?

sizeof(a[100]);呢? //注意是本列的代码

sizeof(&a);这样呢?

sizeof(&a[0]);还有这样的呢?

int b[100];

int fun (int b[100])

{sizeof(b);} 这样的值又是多少?

在这里还是很希望各位能够慢慢地把这几道笔试题做出来,技术就是不断的日积月累加油各位!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。