C语言 sizeof操作符

简介: C语言 sizeof操作符

sizeof操作符


sizeof是c语言中的一个操作符,类似于++、–等等。sizeof能够告诉我们编译器为某一特定数据或者某一个类型的数据在内存中分配空间时分配的大小,大小以字节为单位。


基本语法:


sizeof(变量);
sizeof 变量;
sizeof(类型);


sizeof 注意点:


  • sizeof返回的占用空间大小是为这个变量开辟的大小,而不只是它用到的空间。和现今住房的建筑面积和实用面积的概念差不多。所以对结构体用的时候,大多情况下就得考虑字节对齐的问题了;


  • ※ sizeof返回的数据结果类型是unsigned int;


  • 要注意数组名和指针变量的区别。通常情况下,我们总觉得数组名和指针变量差不多,但是在用sizeof的时候差别很大,对数组名用sizeof返回的是整个数组的大小,而对指针变量进行操作的时候返回的则是指针变量本身所占得空间,在32位机的条件下一般都是4。而且当数组名作为函数参数时,在函数内部,形参也就是个指针,所以不再返回数组的大小;


示例代码:


1. sizeof基本用法


//1. sizeof基本用法
void test01(){
  int a = 10;
  printf("len:%d\n", sizeof(a));
  printf("len:%d\n", sizeof(int));
  printf("len:%d\n", sizeof a);
}



2. sizeof 结果类型


//2. sizeof 结果类型
void test02(){
  unsigned int a = 10;
  if (a - 11 < 0){
    printf("结果小于0\n");
  }
  else{
    printf("结果大于0\n");
  }
  int b = 5;
  if (sizeof(b) - 10 < 0){
    printf("结果小于0\n");
  }
  else{
    printf("结果大于0\n");
  }
}



3. sizeof 碰到数组


//3. sizeof 碰到数组
void TestArray(int arr[]){
  printf("数组TestArray arr size:%d\n",sizeof(arr));
}
void test03(){
  int arr[] = { 10, 20, 30, 40, 50 };
  printf("数组array的 size: %d\n",sizeof(arr));
//数组名在某些情况下等价于指针
  int* pArr = arr;
  printf("arr[2]:%d\n",pArr[2]);
  printf("array size: %d\n", sizeof(pArr));
  //数组做函数函数参数,将退化为指针,在函数内部不再返回数组大小
  TestArray(arr);
}


e1aa412db11ce8a75b7efe182edcc71a_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rWB5qWa5Li25qC85b-1,size_20,color_FFFFFF,t_70,g_se,x_16.png

相关文章
|
13天前
|
C语言
C语言之操作符1
C语言之操作符1
19 0
|
14天前
|
编译器 C语言
操作符详解(C语言基础深入解析)
操作符详解(C语言基础深入解析)
|
28天前
|
存储 编译器 C语言
爱上C语言:操作符详解(下)
爱上C语言:操作符详解(下)
|
2月前
|
算法 测试技术 C语言
【C语言】异或(^)操作符
【C语言】异或(^)操作符
18 0
|
2月前
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
40 0
|
2月前
|
存储 算法 程序员
【c 语言 】位操作符详解
【c 语言 】位操作符详解
51 0
|
2月前
|
存储 编译器 Linux
操作符详解【c语言】
操作符详解【c语言】
|
2月前
|
C语言
如何在C 语言中使用运算符sizeof
如何在C 语言中使用运算符sizeof
12 0
|
2月前
|
存储 编译器 程序员
c语言从入门到实战——操作符详解
C语言操作符指的是程序中用来进行各种计算、逻辑和条件操作的符号或符号组合。 操作符是编程中用于执行特定操作或比较数据的符号。它们根据操作类型分为算术、比较、逻辑和位操作符。算术操作符执行加、减、乘、除等数学运算;比较操作符比较两个值的大小或相等性;逻辑操作符连接多个条件,形成更复杂的逻辑判断;位操作符则直接对整数的二进制位进行操作。了解各种操作符的特性和用法,对于编写高效、准确的代码至关重要。
55 0
|
2月前
|
存储 编译器 程序员
C语言第十六弹---操作符(下)
C语言第十六弹---操作符(下)