在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 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
存储 开发框架 .NET
"揭秘.NET内存奥秘:从CIL深处窥探值类型与引用类型的生死较量,一场关于速度与空间的激情大戏!"
【8月更文挑战第16天】在.NET框架中,通过CIL(公共中间语言)可以深入了解值类型与引用类型的内存分配机制。值类型如`int`和`double`直接在方法调用堆栈上分配,访问迅速,生命周期随栈帧销毁而结束。引用类型如`string`在托管堆上分配,堆栈上仅存储引用,CLR负责垃圾回收,确保高效且自动化的内存管理。
163 6
|
存储 C语言
指针和动态内存分配
指针和动态内存分配
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
1334 13
|
存储 C语言 开发者
C 语言指针与内存管理
C语言中的指针与内存管理是编程的核心概念。指针用于存储变量的内存地址,实现数据的间接访问和操作;内存管理涉及动态分配(如malloc、free函数)和释放内存,确保程序高效运行并避免内存泄漏。掌握这两者对于编写高质量的C语言程序至关重要。
476 11
|
存储 算法 程序员
C 语言指针详解 —— 内存操控的魔法棒
《C 语言指针详解》深入浅出地讲解了指针的概念、使用方法及其在内存操作中的重要作用,被誉为程序员手中的“内存操控魔法棒”。本书适合C语言初学者及希望深化理解指针机制的开发者阅读。
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
容器
在使用指针数组进行动态内存分配时,如何避免内存泄漏
在使用指针数组进行动态内存分配时,避免内存泄漏的关键在于确保每个分配的内存块都能被正确释放。具体做法包括:1. 分配后立即检查是否成功;2. 使用完成后及时释放内存;3. 避免重复释放同一内存地址;4. 尽量使用智能指针或容器类管理内存。
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
4972 2
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1027 5