PTR   Pointer   포인터

(2019-01-14)

포인터, 포인터 연산자, 포인터 주소 연산자

1. [전산 일반]  포인터

  ㅇ 메모리의 특정위치를 가리키는 기호 또는 주소
2. [C 언어]  포인터 

  ㅇ 포인터 자료형 
     - 기본 자료형이 아닌 독특한 융통성을 갖도록, 기본 자료형에서 파생시킨 파생 자료형 임

  ㅇ 포인터 변수 
     - 주소값을 갖는 변수
        . 즉, 또다른 변수정수 형태의 주소값(포인터값)을 갖는 변수
           .. 데이터 값이 아니라 해당 내용을 가리키는 주소에 대한 숫자 값을 갖게되는 변수 
     - 결국, 메모리에서 데이터 위치에 대한 주소 값을 갖는 특별한 변수

  ㅇ 포인터 활용
     - 변수, 함수, 배열, 문자열 등의 주소를 가리키는 데에 사용
     - 연결 리스트, , 스택, 트리 등 동적 자료구조를 다루는데 유용


3. [C 언어]  포인터 선언 및 초기화

  ㅇ 포인터 변수 선언 :  data_type *pt_name ;
     - 한편, 선언때 *은 자료형 바로 뒤(data_type*) 또는 변수명 바로 앞(*pt_name) 모두 가능

  ㅇ `포인터 변수 선언` 및 `포인터 변수 초기화(대입)` 例 
     - 例)  int x, y ;  // 정수형 일반 변수 x,y 선언
     - 例)  int *p ;    // 정수형 데이터를 가리키는 주소를 갖는 `포인터 변수 p`의 선언
     - 例)  p = &x ;    // 포인터 변수 초기화 (포인터 주소 연산자에 의한 주소 대입)
     - 例)  y = *p ;    // 포인터에 의해 지시되는 값을 변수 y에 대입


4. [C 언어]  포인터 연산자

  ㅇ 포인터 주소 연산자 (&)
     - & 바로 뒤에 위치한 포인터 변수의 `주소값`을 알려줌
        . 문법 맞음 例) &var_name  // var_name : 일반 변수명 
        . 문법 오류 例) &array_name  // array_name : 배열명 
           .. 이 경우, &array_name[0] 가 맞음 (아래 5.항 참조)

  ㅇ 포인터 연산자 (*)
     - 포인터 변수 앞에 *를 붙여 주소가 가리키는 `실제 데이터값`을 가져옴
        . 例) *ptr = 20;  // 포인터 변수 ptr이 가리키는 저장위치에 값 25를 저장(대입)함
        . 例)  y = *ptr ; // 포인터 변수 ptr(주소값 저장)에 포인터 연산자 *를 적용하여,
                             이를 통해 실제 저장된 데이터에 접근하여, 
                             저장값을 변수 y에 대입

  ㅇ 이중 포인터 (pointer to pointer) (** 또는 *** 등)
     - 포인터를 가리키는 포인터로써, `포인터 주소값`
     - 첫번째 포인터의 주소값을 갖게됨
     - 이중 포인터의 선언 타입은 첫번째 포인터의 선언 타입을 따라감


5. [C 언어]  포인터 사용시 유의사항

  ㅇ 단지 포인터 선언 만으로는 메모리 내에 의미있는 주소를 갖지 않음
     - 포인터 변수에 의미있는 값을 부여하는 방법 둘
        . 이미 선언되어있는 변수주소값을 대입함 : & 연산자 사용
        . 동적 메모리 관리 함수 사용 : malloc(), calloc()
     - 한편, 의미있게 초기화되지 않은 포인터 변수를 의도치 않게 사용하지 않으려면,
        . 다음과 같이 NULL로 초기화하는 것이 바람직함 : int* pi = NULL;

  ㅇ 포인터의 배열에의 적용
     - 例) 배열 x를 포인터 p로 가리키는 방법 : p = x; 또는 p = &x[0];


[포인터] 1. 포인터 2. 화일포인터
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
          2. 프로그래밍 기법
      1.   프로그래밍 언어론
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
            1. 프로그래밍 언어
        1.   C
              1. C 언어
              2. C 기초 문법
              3. C 연산자
          1.   C 언어 컴파일
          2.   C 변수,상수,자료형
          3.   C 함수
          4.   포인터
            1.   1. 포인터
                2. 화일포인터
        2.   C++
        3.   자바(Java)
        4.   자바스크립트
        5.   PHP
        6.   파이썬
        7.   (기타 언어)
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌