sizeof 指针和数组的区别
2016-03-02 15:47
253 查看
<pre name="code" class="cpp">#include<stdio.h> int main() { char *a = "12345"; char b[] = "12345"; char c[20]; int d[20]; char *p[20]; char *q; printf("char 占几个字节:%d\n",sizeof(char)); printf("sizeof(a)占有几个字节:%d\n",sizeof(a)); <span style="white-space:pre"> </span>printf("sizeof(*a)占有几个字节:%d\n",sizeof(*a)); <span style="white-space:pre"> </span>printf("sizeof(b)占有几个字节:%d\n",sizeof(b)); <span style="white-space:pre"> </span>printf("sizeof(c)占几个字节:%d\n",sizeof(c)); <span style="white-space:pre"> </span>printf("sizeof(d)占几个字节:%d\n",sizeof(d)); <span style="white-space:pre"> </span>printf("sizeof(p)占几个字节:%d\n",sizeof(p)); <span style="white-space:pre"> </span>printf("sizeof(*p)占几个字节:%d\n",sizeof(*p)); <span style="white-space:pre"> </span>printf("sizeof(q)占几个字节:%d\n",sizeof(q)); <span style="white-space:pre"> </span>printf("无符号十进制为:%u\n",-24); <span style="white-space:pre"> </span>printf("十六进制输出为:%x\n",-24); <span style="white-space:pre"> </span>system("pause"); <span style="white-space:pre"> </span>return 0; }
输出结果:
char 占几个字节:1sizeof(a)占有几个字节:4
sizeof(*a)占有几个字节:1 //指向第一个字符元素sizeof(b)占有几个字节:6sizeof(c)占几个字节:20sizeof(d)占几个字节:80sizeof(p)占几个字节:80sizeof(*p)占几个字节:4 //返回第一个指针元素所占的字节数sizeof(q)占几个字节:4无符号十进制为:4294967272十六进制输出为:ffffffe8请按任意键继续. . .
所以,
sizeof(指针) = 4; sizeof(指针数组) = 4 * 数级长度; 例: 定义:char *p[100]; 则:sizeof(p) = 400;
相关文章推荐
- iOS- 指压即达,如何集成iOS9里的3D Touch
- TCP/IP参考模型
- BIT2014级软件学院程序设计-13 平面上的邮局
- Python脚本语言学习
- 关于4A网络安全管控平台控件加载失败的解决方法
- 获取本机IP地址(java)
- js实现checkbox的全选和反选
- ASP.NET MVC Html.ActionLink使用说明
- 自动挂载磁盘脚本
- iOS中属性的声明
- java小游戏第三弹 贪吃蛇
- 快速开发框架androidannotations
- CocoaPods安装和使用教程
- YARN环境中应用程序JAR包冲突问题的分析及解决
- 二叉树 非递归遍历
- 属性动画相关使用
- 淘宝架构演变三阶段简单总结
- iOS(学习) UITableView
- Android开发中实现多点触摸
- IIS发布asp.net项目,要做的准备工作及添加项目