码迷,mamicode.com
首页 > 其他好文 > 详细

sizeof()中要注意的小问题

时间:2014-08-11 18:13:32      阅读:171      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!