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

Posted Bruce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在64位系统下,指向int型的指针占的内存空间多大?相关的知识,希望对你有一定的参考价值。

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

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

我是用的是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下示例代码截图如下:

 

以上是关于在64位系统下,指向int型的指针占的内存空间多大?的主要内容,如果未能解决你的问题,请参考以下文章

在32位64位操作系统下各数据类型所占的字节数

c指针类型的作用

C语言中变量值在存储单元中占用多大空间与啥有关?

C语言指针与数组易混淆知识点

指针相关

1.sizeof(int)*p 2.int *p=NULL;sizeof(p)的值是多少?sizeof(*P)