首页 > 其他 > 详细

sizeof()中要注意的小问题

时间:2014-08-11 18:13:32      阅读:341      评论:0      收藏:0      [点我收藏+]
 

char a[] = {‘s‘,‘f‘,‘g‘,‘d‘,‘h‘};

char *b = "sfgdh";

char c[] = "sfgdh";

int a1 = ‘a‘;

char d[6] = {‘s‘,‘f‘,‘g‘,‘d‘,‘h‘};

printf("%d\n",sizeof(a));

printf("%d\n",sizeof(b));

printf("%d\n",sizeof(c));

printf("%d",sizeof(a1)); 

printf("%d",sizeof(d));

结果为:

5

4

6

4

6

-----------------------------------------------------------------------------------------------------------------------------------------------

    sizeof是求对象在内存中所占的字节数。

    sizeof(a):求的是数组a里面总共占的字节数,总字节数需要数组类型和数组元素的个数一块确定其大小。要求元素个数,可以sizeof(a)/sizeof(char)即为元素个数。因为char型占一个字节,所以结果为:5。切记数组名是数组第一个元素的首地址,是常量,a不能进行赋值运算。

    sizeof(b):b是一个指针变量,也就是存放地址的变量,不管是什么类型的指针变量所求的sizeof()都是地址所占的内存大小,即为4个字节。

    c数组中所表示的数组元素为6,因为最后又一个‘\0’。

     sizeof(a1)求的a1这个对象在内存中所需的空间大小,int型需4个字节所以为4.

    sizeof(d)是为说明,数组的个数由中括号所给的值决定,如果没给,则按后面大括号元素个数决定。

sizeof()中要注意的小问题,布布扣,bubuko.com

sizeof()中要注意的小问题

原文:http://7122819.blog.51cto.com/7112819/1538622

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!