关于sizeof()函数的介绍,百度百科介绍如下:

其核心功能就是判断数据类型长度符,先通过一个实际例子看一下。

通过上面的例子可以看到字符型和无符号字符型长度为都是1,整形和无符号整形长度都为2。字符数组cs的长度为8,其中字符长度为7加上结束符,共占8个字节。字符串指针pcs长度为3。后面的x9、x12、x16这三个都是指针,长度都是3,虽然x16是整形,x9、x12是字符型,但是在单片机内部依然都占用的3个字节的内存。x11占用了9个字节,x11是指针数组,其中里面总共有3个指针。说明一个指针也是占用3个字节。

这就说明了,指针变量的sizeof值与指针所指的对象没有任何关系,所有的指针变量所占内存大小相等。

通过x13也可以看出,数组的sizeof值等于数组所占用的内存字节数,和数组中存储的内容大小没有关系。所以在计算数组is中数组个数时,可以写成

len = sizeof(is)/sizeof(int);

也可以写成

len = sizeof(is)/sizeof(is[0]);

用数组所有元素所占空间大小除以一个元素所占字节大小。

下面借用百度百科中的一句话来总结一下sizeof()的用法。

C语言学习笔记----sizeof()的使用相关推荐

  1. 梓益C语言学习笔记之链表&动态内存&文件

    梓益C语言学习笔记之链表&动态内存&文件 一.定义: 链表是一种物理存储上非连续,通过指针链接次序,实现的一种线性存储结构. 二.特点: 链表由一系列节点(链表中每一个元素称为节点)组 ...

  2. 梓益C语言学习笔记之指针

    梓益C语言学习笔记之指针 一.32位平台下,地址是32位,所以指针变量占32位,共4个字节 二.内存单元的地址即为指针,存放指针的变量称为指针变量,故:"指针"是指地址,是常量,& ...

  3. C语言学习笔记-P1 初识C语言(2)

    C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...

  4. C语言学习笔记-P1 初识C语言(1)

    C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...

  5. C语言学习笔记第十天

    C语言学习笔记第十天 目录 C语言学习笔记第十天 一.什么是堆内存 二.为什么要使用堆内存 三.如何使用堆内存 四.malloc的内存管理机制 五.使用堆内存需要注意的问题 六.内存清理函数 七.堆内 ...

  6. c语言存储类型关键字作用,c语言学习笔记.关键字.存储类型关键字等

    关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...

  7. C语言学习笔记——堆区空间申请(一)

    C语言学习笔记 堆区空间申请(一) 栈区变量分析 所有程序/软件的运行,都是由操作系统统一调配的,操作系统是程序的运行环境 运行中的多个程序之间,内存是不交叉的 程序结束后,操作系统还要释放其使用的资 ...

  8. Lawliet|C语言学习笔记2——变量/数据类型/表达式

    C语言学习笔记2--认识C语言1 1.变量 a.变量的命名 <类型名称><变量名称> 存放数据的一个地方,用于参与后续的运算. 变量命名的规则:只能由字母.数字和下划线组成,且 ...

  9. (一)Go语言学习笔记

    Go语言学习笔记 1 前言 2 写Go语言需要注意的地方 2.1 Go语言编译执行和直接run的区别 2.2 Go语言的特点 2.3 Linux下配置Go环境变量 2.4 随记 3 go_code 3 ...

最新文章

  1. 有没有必要把机器学习算法自己实现一遍?
  2. 初学Java Web——Servlet(一)
  3. comsol计算数据导出matlab,comsol4.2怎样在matlab中通过函数输出数据
  4. linux之菜鸟学习第一天
  5. spring boot+mybatis+quartz项目的搭建
  6. js中使用HTML模板字符串
  7. 助航标志信息自动导入电子海图研究
  8. matlab2008 软件下载及安装教程
  9. 利用word2007插入参考文献
  10. vPro平台再进化:专为商务而生,助力企业数字化大时代
  11. 上海公积金离职提取攻略
  12. 深入浅出GAN框架原理
  13. Linux spi驱动分析(四)----SPI设备驱动(W25Q32BV)
  14. 移动硬盘安装ubuntu系统二——启动U盘安装
  15. 华为又走在美国芯片企业前面,将率先发布5nm工艺芯片
  16. VIP邮箱批量群发效果哪家最好?
  17. 语义网简介(非应用)
  18. Revit项目和族文件升级后出现无响应死机情况
  19. 维盟WayOS2017工控版Vmware虚拟机安装
  20. 第三人称的英语作文我和我的计算机,英语作文:我的同学My Classmate

热门文章

  1. jocky1.0.3 (原joc) java混淆器 去除jdk版本限制
  2. 杨辉三角形函数 JavaScript Generator 实现
  3. 从0到1搭建spark集群---企业集群搭建
  4. linux学习-使用DHCP动态管理主机地址
  5. javascript Date对象 之 获取时间
  6. Windows编程的Notification和Message
  7. 批处理启动myeclipse
  8. RIP juniper
  9. JMETER 用户自定义的变量
  10. Servlet 的三种创建方式