理解C语言中的sizeof操作符
友链
sizeof不是函数,就是一个一元运算符,只不过用起来象个函数而已
对于数据类型,sizeof会计算出该数据类型的大小,比如sizeof(int)就是4
char a[16];
sizeof(a)因该是4,因为a其实就是一个指针,在32位操作系统中,一个指针(内存地址)长度就是32bit即4字节
但是事实证明他会计算出这个指针所指向的内存空间(未分配)的大小,而不是指针类型的大小
可以从上图中看到,不管是char*还是char**,sizeof都是4,也就是指针的长度
其实很简单,区别就是char cliIp[16]分配了一块静态内存
你可能又会问了,为什么同样都是内存,使用malloc分配的内存就不会被计算出来呢
那是因为sizoef是一个编译时的运算符,sizoef(xxx)的值并不是在程序运行的时候才被计算出来,而是在编译的时候就已经计算出来了,请看下面的反编译代码
可以看到这里直接把0x10h(16进制,即10进制的16)作为参数传给了printf函数
这个0x10h是硬编码到程序指令中的,而不是存储在任何寄存器或者内存中
但是malloc只有在程序运行起来之后才会分配内存,这也就是原因所在了
理解C语言中的sizeof操作符相关推荐
- c语言中sizeof是一个标准库函数,对C语言中的sizeof的介绍分析
对C语言中的sizeof的介绍分析 引导语::sizeof是C语言中判断数据类型或者表达式长度符,以下是百分网小编分享给大家的对C语言中的sizeof的介绍分析,欢迎阅读! 1.定义 sizeof是C ...
- c语言中sizeof结构体,C语言中的sizeof用法
C语言中的sizeof是一个很有意思的关键字,经常有人用不对,搞不清不是什么.我以前也有用错的时候,现在写一写,也算是提醒一下自己吧.反正现在来看,还在搞sizeof是什么意思,怎么用正确,还是有点搞 ...
- c语言sizeof(test),解析C语言中的sizeof
一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操作数可以是一个表达式或括在括号内的 ...
- C语言中的sizeof()和strlen()的区别
C语言中的sizeof和strlen的区别 sizeof() strlen 大量案例(想深入了解可以看) 1.(花括号int的sizeof()) 2.(花括号char的sizeof()) 3.(字符串 ...
- sizeof 在C语言的作用,C语言中的sizeof的用法详解
C语言中的sizeof的用法详解 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操 ...
- 一文理解C语言中的volatile修饰符
一文理解C语言中的volatile修饰符 2019/12/2 FesianXu 前言 volatile修饰符是在嵌入式开发和多线程并发编程中常见的修饰符,理解其对于实践过程非常有帮助,此文参考了[1] ...
- 理解C语言中的a++、a--和++a、--a
C语言中 a++ a-- 和 ++a --a 的区别 a++ 表示先赋值再进行加运算 a-- 表示先赋值再进行减运算 ++a 表示先进行加运算再赋值 --a 表示先进行减运算再赋值 注:从上面的概念理 ...
- 解析C语言中的sizeof
一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操作数可以是一个表达式或括在括号内 ...
- C语言中的sizeof解析
1. 定义: sizeof是C/C++中的一个操作符(operator),作用就是返回一个对象或者类型所占的内存字节数.返回 值类型为size_t,在头文件stddef.h中定义.这是一个依赖于编译系 ...
最新文章
- P4113 [HEOI2012]采花 树状数组离线
- MIT与FAIR提出「mixup」,利用数据和标签的随机线性插值提高神经网络的健壮性
- socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl
- C语言中的数据类型及其转换详解
- 4.Java中的关键字和标识符
- python分块处理功能_python 对列表分块
- ios 启用 证书_如何在iOS 10中启用就寝提醒,轻柔的唤醒和睡眠跟踪
- 高斯曲率求表面极值点
- 简历准备及面试技巧,你应该知道的一切
- python中一个对象只能被一个变量引用吗_Python中for循环里的变量无法被引用的解决方法...
- STM8学习笔记---IAR工程重命名
- 贪心算法 (Greedy Algorithm)
- 个人总结 超详细 windows10下载与安装
- ColorUI使用与技巧
- 用origin画不同柱族柱状图
- TypeScript + React + Redux 实战简单天气APP全套完整项目
- 博客文章详情页更新公告
- 绿色IT实现的阻碍 IT企业污染严重
- 【Java基础】手把手教你用Java制作飞翔的小鸟
- java计算机毕业设计体育用品购物系统源程序+mysql+系统+lw文档+远程调试