陳老師您好, 拜讀您的大作後開始了C的學習, 然而目前遇到2個疑問是關於記憶體位址和所佔用大小, 懇請解惑, 程式如下
#include <stdio.h>;
int main() {
//整數變數, 佔用4byte
int a = 0;
//倍精度浮點數, 佔用8byte
double b = 0;
//輸出大小後, 各顯示4與8, 這部分沒問題
printf("大小:\n int: %d\n double: %d\n", sizeof(a), sizeof(b));
//輸出a與b的位址
//問題1: 在我的機器上測試, a的位址是22FF44, b的位址是22FF38, 為何a顯示的位址數字大於b?(經查證, 是因為x86採用little endian, 所以順序顛倒, 但不知其所以然)
//問題2: 為何b被定址為與a相差12的位址? 我認為宣告int a佔用了4byte, 表示在a定址後經過了4byte才又定址b, 所以b應該被定址為22FF40, 難道是傳說中的隨機存取機制???)
printf("位址:\n a: %X\n b: %X\n", &a, &b);
system("pause");
return 0;
}