在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
", b);                      //int型变量b的值。
10     printf("sizeof(b) = %ld
", sizeof(b));     //int型变量b的值所占用内存空间的大小,单位是字节。
11     
12     printf("&b = %p
", &b);                    //int型变量b的地址编号。
13     printf("sizeof(&b) = %ld
", sizeof(&b));   //int型变量b的地址编号所占用内存空间的大小,单位是字节。
14 
15     printf("--------------------
");
16 
17     printf("a = %p
", a);                      //int型指针变量a(int *),指向int型变量b的地址编号。
18     printf("sizeof(a) = %ld
", sizeof(a));     //int型指针变量a(int *),指向int型变量b的地址编号,该地址编号所占用内存空间的大小,单位是字节。
19 
20     printf("*a = %d
", *a);                    //int型指针变量的指向值。
21     printf("sizeof(a) = %ld
", sizeof(*a));    //int型指针变量的指向值所占用内存空间的大小,单位是字节。
22 
23     printf("&a = %p
", &a);                    //int型指针变量的地址编号。
24     printf("sizeof(&a) = %ld
", 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下示例代码截图如下:

原文地址:https://www.cnblogs.com/chenmingjun/p/8267422.html