ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๋ณ€์ˆ˜์™€ ํฌ์ธํ„ฐ
    PROGRAMMING/์ž๋ฃŒ๊ตฌ์กฐ 2020. 6. 18. 12:52

    (์ด ๋ฌธ์„œ๋Š” c์–ธ์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)

     

    ๋ณ€์ˆ˜: ์ด๋ฆ„ , ์ฃผ์†Œ , type(ํฌ๊ธฐ, ํ•ด์„)

     - ์ด๋ฆ„์€ ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ, ์ฃผ์†Œ๋Š” CPU/MEMORY ๋ฅผ ์œ„ํ•œ ๊ฒƒ.

     

    ๋ณ€์ˆ˜๋ฅผ ๋™์ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด, MEMORY ์— ํ•ด๋‹น ๋ณ€์ˆ˜์˜ 'ํฌ๊ธฐ'๋งŒํผ ๊ณต๊ฐ„์ด ์ƒ๊ธด๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๊ทธ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜๋ฐ–์— ์—†๋Š”๋ฐ, ๊ทธ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๊ฐ€ ํฌ์ธํ„ฐ

     

    Pointer : ๋ณ€์ˆ˜์˜ ์ผ์ข…. ๋ณ€์ˆ˜์˜ ํŠน์ง• ์ค‘, type ๊ฐ€ ์ฃผ์†Œ์ธ ๋ณ€์ˆ˜.

     - ์–ด๋–ค type ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋„ ์ถ”๊ฐ€๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•จ

     - ํ‘œ๊ธฐ: int * p; 

     - * ์€ "p์— ์žˆ๋Š” ๊ฐ’์„ ๊บผ๋‚ด์„œ ์ฃผ์†Œ๋กœ ์ƒ๊ฐํ•ด์„œ ๊ทธ ์ฃผ์†Œ๋กœ ๊ฐ„๋‹ค"

     ์ฆ‰, p์—์„œ ์ฃผ์†Œ๋ฅผ ๊บผ๋‚ด ๋ชฉ์ ์ง€์— ๊ฐ€๋ฉด int ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ•ญ์ƒ ์ƒ๊ฐ

     - p= &a : ๋ณ€์ˆ˜ a ์˜ ์ฃผ์†Œ๋ฅผ ๊บผ๋‚ด p ์— ์ €์žฅ -> *p=30 / a=30 ์€ ๊ฐ™์€ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ but a ๊ฐ€ ์‚ด์ง ๋Š๋ฆผ

     - ํˆฌํฌ์ธํŠธ: int **q : ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ. ์ด ์—ญ์‹œ๋„ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. q=&p

             - ex. q == 100 (100๋ฒˆ์ง€) ์ด๋ผ๋ฉด, 100๋ฒˆ์ง€์—๋„ ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค. (*q == 200) 200๋ฒˆ์ง€์— ๊ฐ€๋ฉด int

     

    ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ p ์™€ ํˆฌํฌ์ธํ„ฐ ๋ณ€์ˆ˜ q ๊ฐ€ ์žˆ๊ณ , ์ด๋“ค์˜ ์ฃผ์†Œ๋Š” ๊ฐ๊ฐ 200, 500 ์ด๋‹ค.

    p ๋Š” a ์˜ ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๊ณ , q ๋Š” p ์˜ ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. a ๋Š” 3 ์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” int ๋ณ€์ˆ˜์ด๋‹ค.

    int a =3;

    int *p;

    int ** q;

    p=&a; q=&p;

    ((์ฃผ์˜! q=&&a ์˜ ํ˜•ํƒœ๋กœ๋Š” ์ €์žฅ ๋ถˆ๊ฐ€. a ์˜ ์ฃผ์†Œ์˜ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ a ์˜ ์ฃผ์†Œ์—” ์ฃผ์†Œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ.))

     

    MEMORY ์—” ์ด๋ ‡๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    **q=30; ์„ ํ•œ๋‹ค๋ฉด ์•„๋ž˜์˜ ๊ณผ์ •์œผ๋กœ a ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

    q ๋ผ๋Š” ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ(500)๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๊ฐ€๋ฉด -> 200 ์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ์žˆ์–ด์„œ 200์œผ๋กœ ๊ฐ -> 100 ์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ์žˆ์–ด 100์œผ๋กœ ๊ฐ -> ์ˆซ์ž 3์„ 30์œผ๋กœ ๋ฐ”๊ฟˆ (ํ•ด๋‹น 3 ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅ!)

     

    ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

     

    int a, x; int *p, *r; int **q;

    x=a+*p;   __> (o) int+int

    x=a+p;    __> (o) ํ—ˆ์šฉ์€ ๋จ. ์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ฐ๋ผ์„œ

    q=p+q;   __> (x) ๋‘˜ ๋‹ค ์ฃผ์†Œ์ง€๋งŒ ํƒ€์ž…์ด ๋‹ค๋ฆ„

    p=p+r;    __> (x) ๋”ํ•˜๊ธฐ ์ž์ฒด๊ฐ€ ํ—ˆ์šฉ์ด ์•ˆ๋จ. ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.

    a=p-r;     __> (o) ์ฃผ์†Œ-์ฃผ์†Œ๋Š” ํ—ˆ์šฉ์ด ๋จ. ์•ฝ๊ฐ„ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. ์ฃผ์†Œ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ! ์—ฐ์†์œผ๋กœ ์žˆ๋Š” ์ฃผ์†Œ.

    p=p+3;    __> (o) ์ฃผ์†Œ+-Integer ๊ฐ€๋Šฅ

    p=p+a;    __> (o) int a ๊ฐœ ๋งŒํผ ์ด๋™

    ๋Œ“๊ธ€

Designed by Tistory.