C언어 기초부터 다시 씹어먹기 - (3) 포인터에 대해서

2024. 6. 16. 20:44· 공부 기록/C

 

 

 

포인터란 주소값을 저장하는 기능임.

 

그런데 주소값이란 무엇인가?

주소값은 데이터가 저장된 메모리의 시작부분을 말한다. 

이렇게 말하니 좀 어렵게 들린다. 쉽게 설명을 해보겠다.

 

그에 앞서 변수에 대해 알아보자.

 

변수는 정보를 저장하는 장소다.

 

만약에

int a = 10;

 

이 변수 a에 대해서 알아보자.

a라는 변수에 10이라는 값을 저장한 것이다.

 

그런데

int *p = &a;

 

라고 적힌 것을 발견한다.

 

해석하자면 포인터 p에 변수 a의 주소값을 저장한 것이다.

** & : 주소 연산자로 변수의 이름 앞에 사용하고 해당 변수의 주소값을 반환함.(앰퍼샌드ampersand라고 읽음)

 

그렇다면 주소값은 대체 무엇을 의미하는 것일까?

주소값은 데이터가 저장된 메모리의 시작부분을 의미한다.

 

#include <stdio.h>

int main() {
    int a = 10;     // 변수 a 선언 및 값 할당
    int *p = &a;    // 포인터 p 선언 및 a의 주소값 할당

    // 변수 a의 값 출력
    printf("Value of a: %d\n", a);
    // 포인터 p를 통해 접근한 a의 값 출력
    printf("Value via pointer p: %d\n", *p);

    // 변수 a의 주소값 출력
    printf("Address of a: %p\n", (void*)&a);
    // 포인터 p가 저장하고 있는 주소값 출력
    printf("Address stored in pointer p: %p\n", (void*)p);

    return 0;
}

 

코드 실행 결과

 

주소값에 대해 잘 설명해주고 있는 이미지를 첨부한다.

https://www.tcpschool.com/c/c_pointer_intro

 

c언어에서는 이러한 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현한다.

메모리는 1바이트(8비트) 크기의 작은 조각들로 나뉘어져 있다. 각 바이트마다는 고유한 주소를 갖는다.

 

예를 들어, int형 데이터는 4바이트 크기를 갖는다. 즉, 메모리에서 연속된 4개의 바이트를 사용하는 것.

 

주소값은 바로 이 int형 데이터가 갖는 4바이트의 첫 번째 바이트를 가리킨다.

 

 

요약 

  • 변수 : 값을 저장하는 장소
  • 주소값 : 그 장소의 위치
  • 포인터 : 그 주소값을 저장하는 변수
  • 포인터를 사용하면 변수의 값에 직접 접근하지 않고 그 변수의 주소를 통해 간접적으로 접근할 수 있음.

 

 

 

 

'공부 기록 > C' 카테고리의 다른 글

C언어 기초부터 다시 씹어먹기 - (2) 기본 구성  (0) 2024.06.14
C언어 기초부터 다시 씹어먹기 - (1) 개요  (0) 2024.06.12
20240422 C언어 - 포인터  (0) 2024.04.23
대영쓰 클래쓰 - C언어 1일차  (0) 2024.04.09
2024.04.09. C언어 - strcpy, strlen, strcmp  (0) 2024.04.09
'공부 기록/C' 카테고리의 다른 글
  • C언어 기초부터 다시 씹어먹기 - (2) 기본 구성
  • C언어 기초부터 다시 씹어먹기 - (1) 개요
  • 20240422 C언어 - 포인터
  • 대영쓰 클래쓰 - C언어 1일차
bumm
bumm
개발자 꿈나무 / 철학과(졸업) 및 건축학과(찍먹) 출신의 IT 데뷔 스타일기
bumm
개발자가 되고 싶어? 그런데 왜 니 블로그는 그렇게 깨끗하고 예뻐?
bumm
전체
오늘
어제
  • 분류 전체보기 (54)
    • 공부 기록 (27)
      • 파이썬 (7)
      • C (9)
      • 알고리즘 (1)
      • JAVA (3)
    • 프로젝트 (12)
      • ICT 프로젝트 (5)
      • 노벨매지션 (0)
      • AI수화 (1)
      • 미니 프로젝트 (6)
    • 정보처리기사 (12)
      • 필기 (12)
    • 일기 (3)
      • ICT 멘토링 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO · Designed By 정상우.v4.2.2
bumm
C언어 기초부터 다시 씹어먹기 - (3) 포인터에 대해서
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.