sizeof()的一些思考,地址里到底存了哪些信息
2013-05-23 22:14
113 查看
1.sizeof()函数的一些思考
测试代码如下:
结果如下:
结论:
int* nptr3 = malloc(5*sizeof(int)); // sizeof(nptr3)求得的长度是4,因为只是定义个一个int型指针,所以长度是4
int nptr4[5]; // sizeof(nptr4)求得的长度是20
sizeof()这个函数到底是怎么实现的,为什么sizeof(nptr4)是20,为什么sizeof(nptr3)是4,难道地址和地址还不一样?
2.地址里到底存了哪些信息
为什么sizeof()的长度会不一样,地址和地址不一样,还是地址里存有长度信息?
测试代码如下:
#include <stdio.h> #include <stdlib.h> int main(void) { int* nptr1; int* nptr2 = NULL; int* nptr3 = malloc(5*sizeof(int));//重点是这个,sizeof(nptr3)求得的长度是4 int nptr4[5]; int nptr5[5] = {1,2,3,4,5}; int length1 = sizeof(nptr1); int length2 = sizeof(nptr2); int length3 = sizeof(nptr3); int length4 = sizeof(nptr4); int length5 = sizeof(nptr5); printf("length1 = %d\n", length1); printf("length2 = %d\n", length2); printf("length3 = %d\n", length3); printf("length4 = %d\n", length4); printf("length5 = %d\n", length5); return 0; }
结果如下:
结论:
int* nptr3 = malloc(5*sizeof(int)); // sizeof(nptr3)求得的长度是4,因为只是定义个一个int型指针,所以长度是4
int nptr4[5]; // sizeof(nptr4)求得的长度是20
sizeof()这个函数到底是怎么实现的,为什么sizeof(nptr4)是20,为什么sizeof(nptr3)是4,难道地址和地址还不一样?
2.地址里到底存了哪些信息
为什么sizeof()的长度会不一样,地址和地址不一样,还是地址里存有长度信息?
相关文章推荐
- 获取网站地址的一些信息
- 信息过载的时代,到底哪些知识值得我们去付费?
- 关于指针,地址总线的一些思考。
- [转帖] 关于sizeof()的一些思考
- 从错误信息思考一个问题:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?
- 关于涉及链表和数组中信息交换的一些思考
- 关于sizeof()的一些思考
- [转帖] 关于sizeof()的一些思考
- 从错误信息思考一个问题:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?
- 地址的一些思考
- 关于 sizeof() 的一些思考
- 关于sizeof()的一些思考
- js:js正则一些实例方法(数字调换位置、ip地址合法性检查、url地址提取信息)
- 一些个人的思考:收索引擎与保护模式下的物理地址生成
- 从错误信息思考一个问题:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?
- 企业信息管理系统到底包括哪些工作呢?
- java获取服务器一些信息的方法(服务器地址/相对路径/端口/项目名字)
- 从错误信息思考一个问题:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?
- 企业信息整合的一些思考
- 关于 sizeof() 的一些思考