在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下示例代码截图如下:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM