C ํฌ์ธํ„ฐ(Pointer)

2023. 6. 7. 15:23ยทProgramming Language/C
๋ชฉ์ฐจ
  1. ๐Ÿ‘† ํฌ์ธํ„ฐ๋ž€?
  2. ๐Ÿ“ฃ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ
  3. ๐Ÿช„ ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์ž
  4. ๐Ÿ›’ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ
  5. ๐Ÿ’ญ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ๊ฐ’ ๋„ฃ์–ด๋ณด๊ธฐ
  6. ์ถœ๋ ฅ ๊ฒฐ๊ณผ

 

๐Ÿ‘† ํฌ์ธํ„ฐ๋ž€?

๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๋Š”, ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜

 

๐Ÿ“ฃ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ

int *[๋ณ€์ˆ˜๋ช…];
char *[๋ณ€์ˆ˜๋ช…];

intํ˜• ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์‹ถ๋‹ค๋ฉด int *์„, charํ˜• ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์‹ถ๋‹ค๋ฉด char *์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•๋“ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

์„ ์–ธํ•  ๋•Œ์—๋Š” ์•„๋ž˜์˜ ํ˜•์‹ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • int *p
  • int* p
  • int * p

 

๐Ÿช„ ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์ž

  • ์ฃผ์†Œ ์—ฐ์‚ฐ์ž ( & )
  • ๋ณ€์ˆ˜์˜ ์ด๋ฆ„ ์•ž์— ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
  • ์ฐธ์กฐ ์—ฐ์‚ฐ์ž ( * )
  • ํฌ์ธํ„ฐ์˜ ์ด๋ฆ„์ด๋‚˜ ์ฃผ์†Œ ์•ž์— ์‚ฌ์šฉํ•˜๋ฉฐ, ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
โ— ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” *์€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์ฐธ์กฐ ์—ฐ์‚ฐ์ž์˜ *์€ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๐Ÿ›’ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ

ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ ํฌ๊ธฐ๊ฐ€ ๋™์ผํ•˜๋‹ค.

  • 32๋น„ํŠธ ์‹œ์Šคํ…œ โ†’ 4byte
  • 64๋น„ํŠธ ์‹œ์Šคํ…œ โ†’ 8byte

 

๐Ÿ’ญ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ๊ฐ’ ๋„ฃ์–ด๋ณด๊ธฐ

#include <stdio.h>

int main() 
{
	int *p;
	int num = 5;

	p = &num;

	printf("๋ณ€์ˆ˜ num์˜ ์ฃผ์†Œ : %p \\n", &num);
	printf("ํฌ์ธํ„ฐ p์˜ ๊ฐ’ : %p \\n", p);
	printf("ํฌ์ธํ„ฐ p๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ : %d \\n", *p);
	printf("ํฌ์ธํ„ฐ p์˜ ์ฃผ์†Œ : %p", &p);
}

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ค„ ๋•Œ์—๋Š” ๋„ฃ๊ณ ์ž ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

์ด๋•Œ, ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ์•ž์—๋Š” ์ฐธ์กฐ ์—ฐ์‚ฐ์ž๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ , ๋„ฃ๊ณ ์ž ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์•ž์—๋Š” ์ฃผ์†Œ ์—ฐ์‚ฐ์ž๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.

์ถœ๋ ฅ ๊ฒฐ๊ณผ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค์‹œํ”ผ, ๋ณ€์ˆ˜ num์˜ ์ฃผ์†Œ์™€ ํฌ์ธํ„ฐ p์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

๋ณ€์ˆ˜ num์€ intํ˜• ์ด๋ฏ€๋กœ 4byte๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค. num์— 5๊ฐ€ ํ• ๋‹น๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ 5๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

 

ํฌ์ธํ„ฐ p์˜ ์ฃผ์†Œ๋Š” num์˜ ์ฃผ์†Œ์™€ ๊ด€๋ จ ์—†๋Š” ๋‹ค๋ฅธ ๊ณณ์— ์œ„์น˜ํ•ด ์žˆ๋‹ค.

๋Œ€์‹  ํฌ์ธํ„ฐ p๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๊ณต๊ฐ„์— num์˜ ์ฃผ์†Œ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์ด ํฌ์ธํ„ฐ p๊ฐ€ ๋ณ€์ˆ˜ num์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Programming Language > C' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C์–ธ์–ด] ๋ฐฑ์ค€ 10818๋ฒˆ : ์ตœ์†Œ, ์ตœ๋Œ€  (0) 2023.09.12
[C์–ธ์–ด] Call By Value & Call By Reference  (0) 2023.06.16
๋ฐฑ์ค€ 2480๋ฒˆ : ์ฃผ์‚ฌ์œ„ ์„ธ๊ฐœ  (0) 2022.06.23
C์–ธ์–ด ๋ฉ˜ํ† ๋ง | 6์ฃผ์ฐจ [๊ณผ์ œ] | ๋ฐฑ์ค€ 2675๋ฒˆ, 1157๋ฒˆ  (0) 2022.06.01
C์–ธ์–ด ๋ฉ˜ํ† ๋ง | 5์ฃผ์ฐจ [๊ณผ์ œ]  (0) 2022.05.16
  1. ๐Ÿ‘† ํฌ์ธํ„ฐ๋ž€?
  2. ๐Ÿ“ฃ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ
  3. ๐Ÿช„ ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์ž
  4. ๐Ÿ›’ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ
  5. ๐Ÿ’ญ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ๊ฐ’ ๋„ฃ์–ด๋ณด๊ธฐ
  6. ์ถœ๋ ฅ ๊ฒฐ๊ณผ
'Programming Language/C' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C์–ธ์–ด] ๋ฐฑ์ค€ 10818๋ฒˆ : ์ตœ์†Œ, ์ตœ๋Œ€
  • [C์–ธ์–ด] Call By Value & Call By Reference
  • ๋ฐฑ์ค€ 2480๋ฒˆ : ์ฃผ์‚ฌ์œ„ ์„ธ๊ฐœ
  • C์–ธ์–ด ๋ฉ˜ํ† ๋ง | 6์ฃผ์ฐจ [๊ณผ์ œ] | ๋ฐฑ์ค€ 2675๋ฒˆ, 1157๋ฒˆ
602zzang
602zzang
  • 602zzang
    yks_STUDY
    602zzang
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (77)
      • Programming Language (36)
        • C (15)
        • PYTHON (9)
        • RUST (12)
      • Reverse Engineering (3)
      • OS (17)
        • LINUX (17)
      • ๋ณด์•ˆ ์ด์Šˆ (6)
      • Digital Forensics (1)
      • CTF (8)
      • ๊ธฐํƒ€ (6)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    TeamH4C
    ๋ณด์•ˆ์ด์Šˆ
    rust
    ๋ฐฑ์ค€
    python
    ์†Œ์ผ“ ํ†ต์‹ 
    bandit
    c
    cyberdefenders
    rustling
    ๋“œ๋ฆผํ•ต
    ๊ณต๊ธ‰๋ง
    ์ฝ”๋“œ์—…
    Rocky Linux
    picoCTF
    ํŒŒ์ด์ฌ
    umassctf2025
    ๋ณด์•ˆ๋™ํ–ฅ
    P4C
    ๋นก๊ณตํŒŸ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
602zzang
C ํฌ์ธํ„ฐ(Pointer)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.