••-)¹y CPU"|}~ CPU |}~ 32bit ‘’“ ”' X•Y- VWXYŽY 64bit 8bit R •d–— R •O0262P/ 10 9SI2 a = 10; i,j+b[0] = 20; b[1] = b[0] + a; b[0] •O0266+0*4P/ 20 9SI2 •O0266+0*4P"O0262P)ª Q9Ÿ’•34)«¬9 QO0266+1*4P/SI2 ··^%3OxP% x bMq>24byte^¸2"72 b[0] b[1] i,j+k)§t •&'/Š‹K|}~)®¯9Ÿ’72 •°&'•/±²)VWXY9‚ƒ³12 •'´93VWXY9xG{žµ/&¶72 |}~)VefY &')VefY/Š‹Kno • ˜—•d7™d&'%3€)VWXYbMq> 2b • &'5_`aIJG2cda%3GšMb i,j+k)›œRw• • VWXY9žŸ’•KšJ‡G • &')cda)Z ?/!Tint, double K€U 9xG2)^3¡¢G/šG<>{3cda) £G¢G9¤¥¦e•JšI2 *+,- •¹º%|}~»/µ/¨©aI2 D)¼r a[0] i,j+k5 lm72no •&' a pqr0262 cdar4 stuvr4 •&' b pqr0266 cdar8 stuvr4 •int a[3]; "•J¹º9½¾•{¿F ¨©aI2ÀÁ%“^ 12byte a[x] % 0262 + (x * 4) bMq>2 4byte •double d[10] )‡Ã/•{¿F Q¨©aI2ÀÁ%“^ 80byte d[x] % 0262 + (x * 8) bMq>2 8byte a[1] a[2] *+,-&'"*+,-)! VWXY QQR 0262 0263 0264 0265 0266 QQR QQR 8bit a & : &'•bM)VWXYH„ Q&a % 0262 "K2 Q&(b[0]) % 0266 "K2 * : VWXY/‡2|}~VefY Q*(0262) ^&' a (VefY QQ^d2bˆ QQ‰stuv)no5Š‹ QQR 0262 0263 0264 0265 0266 QQR QQR a b p main() { int a, b, *p; a = 10; p = &a; b = *p; *p = 20; } 1. 2. 3. 4. /* /* /* /* 1 2 3 4 */ */ */ */ p % int !) QQQ*+,-&' •p /% int )&') QVWXY9ZS72 Q[5\]2 •*p ^3p /_`aI QJG2VWXYbM3 Qint )cda^ QVefY^d2 a / 10 5S2 p / 262 5S2 b / a )8T10U5S2 a / 20 5S2 *+,-)gh main() { int a, b[2]; QRRR } i,j+k5lm72no)wx •&' a )pqvyTVWXYU9 z?{G •VWXY9xGJ|}~st•{G b[0] b[1] i,j+k5 lm72no •&' a pqr0262 cdar4 stuvr4 •&' b pqr0266 cdar8 stuvr4 int a; int *p; p = &a; main() { int a, b[2]; QRRR } ¹º! 8bit •double r; "•{¿F r % 0120 - 0127 R|}~9 12byte ¨© QTpqvyr0262U } a 8bit VWXY QQR 0120 0121 &'a 0122 QQR QQR QQR &'b i,j+k)§t a 8bit double (64bit = 8byte) |}~ •|}~%8bit=1byte9 uv/3_`72no 8bit VWXY )cda/F ÄJÅ xaI2 QQR 0120 •˜—•d%3°ÀÁ 0121 9Æ">"Ç/•JÈà 0122 QQR &'r D)¼r QQR •int a, b; "•{¿F QQR a % 0120 - 0123 b % 0124 - 0127 ˜—\• main() { int a, b[2]; b[1] VWXY QQR 0262 0263 0264 0265 0266 QQR QQR 8bit R ••-ŽY Œ'X•Y- VWXY QQR 0262 0263 0264 0265 0266 QQR QQR VWXY 0000 0001 0002 0003 int (32bit = 4byte) |}~ VWXY QQR 0262 0263 0264 QQR QQR QQR )@A K€ pqvyr&'•/‚ƒ cdarsizeof(..) ^H„…† stuvr!/‚ƒ !"#$ p %int&'()*+,- a %int&' int *p; p = &a; * %*+,-)./012"3 4)*+,-56789:; 72<=>?3int ! & %&')./012"3 4)!()*+,-9:;72< =>?3int !()*+,- NC%Oint!P NC%Oint!()*+,-P BC"DC)E?FG5HIJGK1ILKMKG< int ! a *p int !()*+,&a p ê'"*+,a void change(int *x) { *x = 100; } int main() { int a = 10; x change(&a); int main() { int a[2] = {10, 20}; int *y = a; a[0] *a a[1] *(a+1) y[1] *(y+1) y int *p; x.a • ÅG× struct foo { int a; double d; }; i,j+- ÉÊË)w• •|,Ž a %cda 4byte ^3 pqvy% x )ÌÍbM 0 ¹º/‚72w• • óôK!9Æ">"Ç/\]2 • õö"i÷•^d2 struct hoge a, b; a = b; •|,Ž d %cda 8byte ^3 pqvy% x )ÌÍbM 4 •x )!% struct foo ! Tfoo %-Ε"GÃU x •x.a )!% int x.d •x.d )!% double ˜—ø7a3•dø7a • °‹ì/:;)¸2•.9012[5\]2 • ÉÊË)ÝÞ%3-Ε/‡?ùwx^d2 Ø{M@Ù(free)72 – @Ù•K1IL€Õ€Õ|}~5ÚÛaI2 ÉÊË)t?ÜRÅGÜ struct st1 { int a, b; } struct st2 { struct st1 s; double c[3]; } struct st1 x; struct st2 y; x.a =10; y.c[0] = 10.5; y.s = x; y.s.b = 20; !"K&'½¾ ÉÊË()*+,• t?ÜTÝÞ"½¾U • ÉÊË9SI2·"5…† • ¹º9SI2·"ß…† • -Ε9xGJGš=^ßàá! )ÉÊË9t2[5…† ÅGÜ • |,Ž(VefY72‘’â. %3ã1JÅÃ[5\]2 struct st1 { int a, b; } struct st1 x; struct st1 *y; y = &x; (*y).a = 100; y->b = 200; ÉÊË967*+,-5Åè2 • ‘’â*)ú̵v%.ø[] ‡?)G·"/Ð:* • ÉÊË()*+,-9+,/ ÈÑ’â->5x:aIJG 2 m->n % (*m).n "ûü • äaI{#åº) Yæ•Y)ç'9 { 'èJé7ê' • p++ ^3#åº) ë)‹ì(ím‚ î9ï§72 } •x %cda 12byte struct foo x; • Š‹K"d/Š‹KÏ1|}~9¨©72 – cda)Ÿ’/Ð:Tsizeof() 9ÅÃ[U – !)&¶TÑÒYÓU9dÔÕ"72)5Ö>•G y[0] *y •*+,-&'()ý’%VWXY() ý’^%Kš3stuvT!)cdaU9 þá{8)ý’"K2 •*+,-%¹º"•J3>{ÿ/¹º% *+,-"•JÅÃ[5\]2 •a[0] " *a %ûü •a[1] " *(a+1)%ûü for( ; *p != ‘¥0’; p++) if(*p == ‘ ‘) { cnt++; } } return cnt; ÉÊË Malloc() " free() p = (int *)malloc(100 * sizeof(int)); *p = 100; p[99] = 200; free(p); int spacecnt(char *p) { int cnt = 0; QQy[0] = 100; *(y+1) = 200; *a = 1000; *(a+1) = 2000; } } •a /_`aI{8^%Kš3&' a )*+,-TVWX YU9ê' change (ðè2[^3&' a )ñò9• d¶è2[5\]2Tê'bM89é7[5\]2U *+,-)ƒx¼ *+,-"¹º int *a[3]; Q int *(a[3]) "àá Oa %‹ì' 3 )¹º^34)¹ º)°‹ì%int ()*+,-P • int (*b)[3]; Ob %*+,-^34)*+,-56 7Ì%‹ì' 3 )¹º<4)¹º )°‹ì% intP • struct list { int data; struct list *p1, *p2; } x; Ox % int !)ÀÁ data "3#$ #%"àá!)ÉÊË967*+ ,-p9|,Ž/&=ÉÊËP a[0] a[1] a[2] int int int int int b data p1 p2 '9(ØJ¸2 “$5±²/¨ ©aI2|}~ int data p1 p2 data p1 p2 data p1 p2 data p1 p2
© Copyright 2024 Paperzz