Tech Stack/C, C#

C ์–ธ์–ด ํฌ์ธํ„ฐ ๊ฐœ๋…

_silver 2025. 4. 16. 22:28
๊ธฐํ˜ธ/ํ‘œํ˜„ ์˜๋ฏธ ์˜ˆ์‹œ ๊ฐ’
n ๋ณ€์ˆ˜์˜ ๊ฐ’ 10
&n ๋ณ€์ˆ˜ n์˜ ์ฃผ์†Œ ์˜ˆ: 0x100
p ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์ž์ฒด(์ฃผ์†Œ ์ €์žฅ ๋ณ€์ˆ˜) &n == ์˜ˆ: 0x100
*p ํฌ์ธํ„ฐ p๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ 10
*&p p๋ฅผ ์—ญ์ฐธ์กฐํ•œ ํ›„ ๋‹ค์‹œ ์ฐธ์กฐ -> ์›๋ž˜ p ๊ฐ’ p == ์˜ˆ: 0x100 
*(&n) n์˜ ์ฃผ์†Œ๋ฅผ ์—ญ์ฐธ์กฐํ•œ ๊ฒƒ -> n์˜ ๊ฐ’ 10
*ptr ptr์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜์˜ ๊ฐ’ [์˜ˆ์ œ ์ฝ”๋“œ ์ฐธ๊ณ ] ์˜ˆ: 0x100
*&ptr ptr๋ฅผ ์—ญ์ฐธ์กฐํ•˜๊ณ  ๋‹ค์‹œ ์ฐธ์กฐํ•œ ๊ฒƒ → ์›๋ž˜ ptr [์˜ˆ์ œ ์ฝ”๋“œ ์ฐธ๊ณ ] ์˜ˆ: 0x100

 

โ˜‘๏ธ ์˜ˆ์ œ ์ฝ”๋“œ - ํฌ์ธํ„ฐ ๊ธฐ๋ณธ ๊ฐœ๋… ์ •๋ฆฌ
๋”๋ณด๊ธฐ
#include <stdio.h>

int main(void) {
    int x = 10;          // ๋ณ€์ˆ˜ x ์„ ์–ธ, ๊ฐ’์€ 10
    int* ptr = &x;       // ํฌ์ธํ„ฐ ptr์— x์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ

    printf("1. x์˜ ๊ฐ’: %d\n", x);           // 10
    printf("2. &x (x์˜ ์ฃผ์†Œ): %p\n", &x);   // ์˜ˆ: 0x100
    printf("3. ptr (์ €์žฅ๋œ ์ฃผ์†Œ): %p\n", ptr); // &x์™€ ๊ฐ™์Œ
    printf("4. *ptr (๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’): %d\n", *ptr); // 10
    printf("5. *&x: %d\n", *&x);           // 10 (x์˜ ์ฃผ์†Œ๋ฅผ ์—ญ์ฐธ์กฐํ•œ ๊ฒƒ)
    printf("6. *&ptr: %p\n", *&ptr);       // ptr์˜ ๊ฐ’ (x์˜ ์ฃผ์†Œ)
    
    return 0;
}

 

โœ… ์ถœ๋ ฅ ์˜ˆ์‹œ

1. x์˜ ๊ฐ’: 10
2. &x (x์˜ ์ฃผ์†Œ): 0x100
3. ptr (์ €์žฅ๋œ ์ฃผ์†Œ): 0x100
4. *ptr (๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’): 10
5. *&x: 10
6. *&ptr: 0x100