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
        • 오류해결
        • 개인 공부
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    드라이버 분석
    포인터
    Git
    Qualcomm
    자료구조
    arm
    파이썬
    Branch
    순환
    commit
    시스템콜
    rubikpi3
    INIT
    커널 기여
    파일 입출력
    리눅스
    이진 트리
    동적메모리
    rubik pi
    소수
    yolo
    백준
    피보나치
    토발즈
    앤드류모튼
    c언어
    버퍼
    스택
    C++
    커널
  • 최근 댓글

  • 최근 글

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

티스토리툴바