C语言中sizeof的用法

时间:2023-01-30 19:36:09

最近好多公司来武汉招聘,我也参加了不少的笔试,虽然结果都不是很理想,但是也发现了自己很多的不足,先总结一下C语言中sizeof的一些用法,因为基本上只要是笔试题目,都会有关于这个的用法

 

1.sizeof的名称叫做求字节操作符,形式很像一个函数,就是求某个类型或者对象的字节数

2.sizeof的返回值类型是size_t,它是一个unsigned int类型

2.char、signed char和unsigned char的sizeof值为1,因为都是字符型变量

3.sizeof的用法:

   char a='z';

   sizeof(a);         //值为1

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

   sizeof(int);       //32位系统中值为4

   sizeof(double);//32位系统中值为8

   sizeof(char);    //值为1

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

   char *p="zs"; 

   sizeof(p)          //32位系统中该指针的值为4

4.数组的sizeof值等于数组所占用的内存字节数,例如:

   char c1[] = "abc";
   int c2[3];
   sizeof( c1);  // 结果为4,字符 末尾还存在一个NULL终止符
   sizeof( c2 ); // 结果为3*4=12(因为c2数组中的每一个成员都是int型,占四个字节)

5.结构体中的sizeof

   (未完待续)--------->今天2月6日,接着写完

   typedef struct  _test
  {
     int i;  //4个字节
     float f; //4个字节
     char c; // 1个字节
  } test;

 

  test *pt;

  printf("int i的字节:%d/n",sizeof(pt->i));     //输出4
  printf("float f的字节:%d/n",sizeof(pt->f));  //输出4
  printf("char c的字节:%d/n",sizeof(pt->c)); // 输出1
  printf("结构体test:%d/n",sizeof(test));      //输出12,涉及到字节对齐