在64位系统下,指向int型的指针占的内存空间多大?

简介: 不废话,请看代码演示如下: 注意使用的操作系统的位数,不同位数的操作系统,结果不一样! 我是用的是64位的操作系统! linux下示例代码如下: 1 #include 2 3 int main() 4 { 5 int b = 1; 6 int *a; 7 a = &b; 8 9 printf("b = %d\n", b); //int型变量b的值。

不废话,请看代码演示如下:

注意使用的操作系统的位数,不同位数的操作系统,结果不一样!

我是用的是64位的操作系统!

linux下示例代码如下:

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int b = 1;
 6     int *a; 
 7     a = &b; 
 8 
 9     printf("b = %d\n", b);                      //int型变量b的值。
10     printf("sizeof(b) = %ld\n", sizeof(b));     //int型变量b的值所占用内存空间的大小,单位是字节。
11     
12     printf("&b = %p\n", &b);                    //int型变量b的地址编号。
13     printf("sizeof(&b) = %ld\n", sizeof(&b));   //int型变量b的地址编号所占用内存空间的大小,单位是字节。
14 
15     printf("--------------------\n");
16 
17     printf("a = %p\n", a);                      //int型指针变量a(int *),指向int型变量b的地址编号。
18     printf("sizeof(a) = %ld\n", sizeof(a));     //int型指针变量a(int *),指向int型变量b的地址编号,该地址编号所占用内存空间的大小,单位是字节。
19 
20     printf("*a = %d\n", *a);                    //int型指针变量的指向值。
21     printf("sizeof(a) = %ld\n", sizeof(*a));    //int型指针变量的指向值所占用内存空间的大小,单位是字节。
22 
23     printf("&a = %p\n", &a);                    //int型指针变量的地址编号。
24     printf("sizeof(&a) = %ld\n", sizeof(&a));   //int型指针变量的地址编号所占用内存空间的大小,单位是字节。
25 
26                                                 //int型指针变量是一级指针,一级指针的地址编号则是二级指针。
27 
28     return 0;
29 }
b = 1
sizeof(b) = 4
&b = 0x7ffeb93f609c
sizeof(&b) = 8
--------------------
a = 0x7ffeb93f609c
sizeof(a) = 8
*a = 1
sizeof(a) = 4
&a = 0x7ffeb93f60a0
sizeof(&a) = 8

linux下示例代码截图如下:

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
7月前
|
存储 C++
C++语言中指针变量int和取值操作ptr详细说明。
总结起来,在 C++ 中正确理解和运用 int 类型地址及其相关取值、设定等操纵至关重要且基础性强:定义 int 类型 pointer 需加星号;初始化 pointer 需配合 & 取址;读写 pointer 执向之处需配合 * 解引用操纵进行。
631 12
|
7月前
|
缓存 监控 Linux
CentOS系统如何查看当前内存容量。
以上方法都不需要特殊软件或者复杂配置即可执行,在CentOS或其他Linux发行版中都适合运行,并且它们各自透露出不同角度对待问题解答方式:从简单快速到深入详尽;从用户态到核心态;从操作层数到硬件层数;满足不同用户需求与偏好。
521 8
|
8月前
|
存储 缓存 监控
手动清除Ubuntu系统中的内存缓存的步骤
此外,只有系统管理员或具有适当权限的用户才能执行这些命令,因为这涉及到系统级的操作。普通用户尝试执行这些操作会因权限不足而失败。
1489 22
|
12月前
|
监控 Linux Python
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
410 27
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
1009 38
|
监控 Java Android开发
深入探讨Android系统的内存管理机制
本文将深入分析Android系统的内存管理机制,包括其内存分配、回收策略以及常见的内存泄漏问题。通过对这些方面的详细讨论,读者可以更好地理解Android系统如何高效地管理内存资源,从而提高应用程序的性能和稳定性。
642 16
|
机器学习/深度学习 人工智能 缓存
【AI系统】推理内存布局
本文介绍了CPU和GPU的基础内存知识,NCHWX内存排布格式,以及MNN推理引擎如何通过数据内存重新排布进行内核优化,特别是针对WinoGrad卷积计算的优化方法,通过NC4HW4数据格式重排,有效利用了SIMD指令集特性,减少了cache miss,提高了计算效率。
587 3
|
机器学习/深度学习 人工智能 算法
【AI系统】内存分配算法
本文探讨了AI编译器前端优化中的内存分配问题,涵盖模型与硬件内存的发展、内存划分及其优化算法。文章首先分析了神经网络模型对NPU内存需求的增长趋势,随后详细介绍了静态与动态内存的概念及其实现方式,最后重点讨论了几种节省内存的算法,如空间换内存、计算换内存、模型压缩和内存复用等,旨在提高内存使用效率,减少碎片化,提升模型训练和推理的性能。
721 1
|
8月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
2737 0
|
8月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
876 1