语法

sizeof有三种语法形式:

1、sizeof(object); //sizeof(对象);

2、sizeof(type_name); //sizeof(类型);

3、sizeof object; //sizeof 对象;

一、基本数据类型的sizeof

等于各数据类型在内存中所占的字节数。这里的基本数据类型指的是short、int、long、float等简单的内置数据类型,由于它们和系统相关,所以取值在不同系统下可能会不同,可移植性较差。

如:

#include <stdio.h>
int main()
{
int a = sizeof(char);
int b = sizeof(short);
int c = sizeof(int);
int d = sizeof(long);
printf("char 长度是 %d 个字节 \n", a);
printf("short 长度是 %d 个字节 \n", b);
printf("int 长度是 %d 个字节 \n", c);
printf("long 长度是 %d 个字节 \n", d);
return 0;
}

运行结果为:

13:55:58 > char 长度是 1 个字节
13:55:58 > short 长度是 2 个字节
13:55:58 > int 长度是 4 个字节
13:55:58 > long 长度是 4 个字节

二、指针变量的sizeof

等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位)。

指针变量的sizeof值与指着所指的对象没有任何关系。

三、数组的sizeof

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

   char a1[] = "abc";
  int a2[3];
  sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符
  sizeof( a2 ); // 结果为3*4=12(依赖于int,int4个字节)   //sizeof当作了求数组元素的个数是不对的,求数组元素的个数写法为:
// 总长度/单个元素的长度
  int c2 = sizeof( a1 ) / sizeof( a1[0] ); // 总长度/第一个元素的长度.注意数组名做函数参数传递时退化为指针。

四、结构体的sizeof

struct S1{
char c;
int i;
};

sizeof的结果等于对象或者类型所占的内存字节数。

声明:本文参考转载自C语言中sizeof的用法 (oh100.com)

最新文章

  1. Spring 资源文件处理
  2. 浅谈ASM中的SLB
  3. 【转】Apache Digest验证
  4. cocos2dx 入门
  5. 关于iOS和OS X废弃的API知识点
  6. Kmeans方法
  7. Careercup 论坛上较有意思的题目整理
  8. oracle 创建修改 job
  9. c 语言结构体struct的三种定义方式 及 typedef
  10. Canvas scale- 缩放
  11. wpf创建用户控件(计时器控件)
  12. HTML 练习滑动
  13. ModuleNotFoundError: No module named &#39;_sqlite3&#39; -- python2.7 问题
  14. 11.sklearn中的朴素贝叶斯模型及其应用
  15. Spring MVC 使用介绍(二)—— DispatcherServlet
  16. sqlserver触发器insert,delete,update
  17. Redis密码设置与访问限制
  18. 搭建中小规模集群之rsync数据同步备份
  19. Qt 4.6.2静态编译后,创建工程出现中文乱码的解决办法
  20. Python套接字编程(1)——socket模块与套接字编程

热门文章

  1. 使用3D Tiles Overview学习3D Tiles
  2. GeoServer课程规划
  3. DataTable 中文国际化
  4. C++模板之成员模板和模板构造函数
  5. python列表增加,修改,插入
  6. IDEA导入建立图标类型的包失败
  7. Supervisor多进程管理 异常自动重启 可视化管理
  8. Pandas 学习手册中文第二版&#183;翻译完成
  9. Go 学习路线(2022)
  10. AT2402 [ARC072D] Dam