在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