C언어 - 이중 포인터

2023. 1. 3. 01:59·C프로그래밍/개인 공부

이중 포인터

 

포인터는 다른 변수의 주소를 가르킨다고 학습했었다.

포인터도 변수이기 때문에, 포인터가 포인터를 가르킬 수 있다.

그것을, 포인터의 포인터. 즉, '이중 포인터'라고 한다.


 

간단한 일반적인 포인터의 예를 보자,

int i = 10;
int *p = &i;

이것은 지금까지 학습했던, 일반적인 포인터이다.

포인터 p는 변수 i를 가르키게 된다.

 


 

이중 포인터는 이렇게 표현한다.

int i = 10;
int *p = &i;
int **q = &p;

포인터 p는 변수 i의 주소를 가르키고,

이중포인터 q는 포인터p의 주소를 가르킨다.(포인터 p도 변수이기 때문에 주소를 갖는다.)

텍스트로는 이해가 힘드니 그림으로 다시 알아보자.

 

이중포인터 그림(주소는 예시임)

 


 

참조연산자 *

주소연산자 &

를 활용해서 누가 어떤 값을 갖는지 확인해보자.

p = &i // p는 i의 주소를 갖는다.(1000)
*p = 10 // p가 가르키는 것의 값, 즉 i의 값 10이다.

q = 996 // p의 주소
*q = 1000 // q가 가르키는 것의 값. 즉, q가 가르키는 것은 p이고 p는 i의 주소를 갖고 있다!(1000)

**q = 10 // q가 가르키는 것의 가르키는 것의 값. 즉, q는 p를 가르키고 p는 i의 주소를 가르키는데, 그 i의 값!

 


 

'C프로그래밍 > 개인 공부' 카테고리의 다른 글

C언어 - 함수의 포인터  (0) 2023.01.07
C언어 - 포인터의 배열, 배열의 포인터  (0) 2023.01.05
C언어 - 연결리스트  (0) 2022.12.20
C언어 - 동적 메모리  (0) 2022.12.14
C언어 - 열거형(enumeration)  (0) 2022.12.11
'C프로그래밍/개인 공부' 카테고리의 다른 글
  • C언어 - 함수의 포인터
  • C언어 - 포인터의 배열, 배열의 포인터
  • C언어 - 연결리스트
  • C언어 - 동적 메모리
Jminu
Jminu
  • Jminu
    뇌 구조가 바이너리
    Jminu
  • 전체
    오늘
    어제
    • 분류 전체보기
      • C프로그래밍
        • 오류해결
        • 개인 공부
        • Programming Lab(학교수업)
        • MemoryTracker
      • C++
        • 개인 공부
      • 자료구조(Data Structure)
      • ARM arch
        • Cortex-M
        • FreeRTOS
      • 컴퓨터 공학(Computer Science)
        • OS
        • 컴퓨터 구조
      • Qualcomm 기업과제
      • Linux
      • Web
      • 똥글
      • 백준
      • Git 학습
        • 오류해결
        • 학습중
      • Python
        • 오류해결
        • 개인 공부
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    권머현
    순환
    Qualcomm
    aapcs
    Git
    백준
    arm
    rubikpi3
    c언어
    thumb2
    INIT
    이진 트리
    동적메모리
    C++
    스택
    yolo
    rubik pi
    ptrace
    파이썬
    버퍼
    소수
    자료구조
    과속탐지
    피보나치
    rubikpi
    commit
    Branch
    포인터
    커널
    파일 입출력
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Jminu
C언어 - 이중 포인터
상단으로

티스토리툴바