[华赛面试题] C语言 通过sizeof计算变量占用的存储空间
来源:互联网 发布:mac 终端切换root用户 编辑:程序博客网 时间:2024/05/22 04:46
这是原题,大概意思是用一指针指向某字符串,而这个字符串是子函数里的。赋值可行吗?
答题时我通过筛除选项证明了赋值可行,接下来就正式进入计算问题:
p是一个指针,它表明一个内存地址(其值常见如:0XF32F980A),在WinXP VC6.0下占用32bit,即m=4(Byte).
而*p则访问的是一个char值,这里是H。故n=1.
这 里 是 分 隔 线
同样的,如果上面代码中,strsize是一个INT数组,其他代码作相应修改,那么,m值不变,n变成4,代表一人INT型数据占用4字节存储空间。
这 里 是 分 隔 线
下面是另一道面试题,我的同学遇到了,同样的是sizeof的陷阱!代码如下(感谢我的同学,博主wencheng2998):
ch2,涉及到字符数组的地址即首个元素的地址,一度让我觉得sizeof(ch2)=4,因为ch2也是一个类似于0X0012FF74的值,这不就是一个内存地址吗?那它占用的空间当然就是4了。
可实际上,通过访问数组名可以访问全体数组元素,这在ch3这个极端的例子得到体现!
因此,“sizeof(数组名)”表达的就是:数组元素*单个元素占用的存储空间大小!
比如上面的代码中,int3=1000*1=1000, int4=20*4=80.
- [华赛面试题] C语言 通过sizeof计算变量占用的存储空间
- C语言的存储空间布局
- C语言面试题——sizeof的注意点
- C语言基础 使用sizeof计算数组的大小
- C语言 局部变量存储空间的分配和释放 奇怪现象及猜想
- C语言中的常量、变量及其属性,类型、存储空间
- c语言sizeof面试题详解
- C/C++语言sizeof相关计算
- 面试sizeof C语言各个类型占用字节书
- 不使用sizeof,获取变量所占用的字节数
- CPP内存占用和sizeof计算大小的问题
- 变量的存储空间
- 关于c语言的sizeof
- C语言 sizeof的用法
- 理解c语言的sizeof
- C++定义中short int long类型的变量分别占用了几个字节的存储空间
- C语言基础 sizeof函数产生的结果是size_t类型的变量
- C语言中union与struct的区别及sizeof的计算方式
- vim替换^M字符
- [华赛面试题] C语言动态分配内存 用指针实现字符串的函数体外打印
- 构造函数不能是虚函数
- html跳转
- 二叉排序树(字符串)
- [华赛面试题] C语言 通过sizeof计算变量占用的存储空间
- RedHat版本介绍
- struts中包的namespace
- asp jsp 判断操作系统类型 浏览器版本
- gentoo安装blender,emerge出错
- 数据库同步方式(三)
- HTTP协议演示_基于 HTT P的 Web Forms 编程5-5-实验
- FUSE(Filesystem in Userspace)简介和使用
- ubuntu 9.10 下配置 tftp 教程