[問題] 位址的疑問

看板C_and_CPP作者時間16年前 (2010/01/09 11:59), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: 不了解位址算出來的結果是如何算的 希望得到的正確結果:解釋讓我懂 程式跑出來的錯誤結果:沒錯 開發平台: Dev-C++ 有問題的code: #include <cstdlib> #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; int main(int argc, char *argv[]) { struct employee { char id[7]; char name[20]; int salary; }; struct employee manager = {"D12345","Peter",3500}; printf("&manager=%x\n",&manager); //位址為22ff50 printf("&manager.id=%x\n",&manager.id); //位址為22ff50 printf("&manager.name=%x\n",&manager.name); //位址為22ff57 printf("&manager.salary=%x\n\n",&manager.salary); //位址為22ff6c <-----這是怎麼算出來的? printf("manager.id=%s\n",manager.id); printf("manager.name=%s\n",manager.name); printf("manager.salary=%d\n\n",manager.salary); printf("&manager+1=%x\n",&manager+1); //位址為22ff70 <-----這又是怎麼算出來的? system("PAUSE"); return EXIT_SUCCESS; } 補充說明:抱歉,初學者不懂指標的運作 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.19.219

01/09 12:03, , 1F
啊~我的眼睛~>_<|||
01/09 12:03, 1F

01/09 12:12, , 2F
我印象中struct的mem不一定會"緊密" emun才會 @@?
01/09 12:12, 2F

01/09 12:15, , 3F
在於資料成員的資料型態不一致~
01/09 12:15, 3F

01/09 12:39, , 4F
1F眼睛@@?
01/09 12:39, 4F

01/09 12:55, , 5F
alignment
01/09 12:55, 5F

01/09 21:48, , 6F
同上,16byte alignment
01/09 21:48, 6F
文章代碼(AID): #1BH_y_sJ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BH_y_sJ (C_and_CPP)