TIL

[정처기실기] 포인터

온풀 2024. 8. 16. 16:57
10주 스터디 2일 차
수제비 정보처리기사 실기 교제 6-64 / 프로그래밍 언어 활용 - 포인터

포인터

1. 포인터 개념

  • 포인터는 변수의 주솟값을 저장하는 공간

2. 포인터 선언

자료형* 포인터_변수명 = &변수명;
  • 자료형 뒤에 * 를 붙이면 주소를 저장하는 포인터 변수라는 의미이고, 일반 변수명에 &를 붙이면 해당 변수명의 주솟값.
  • int 형 변수를 가리키는 포인트 변수 선언 시 int* 를, char 형 변수를 가리키는 포인트 변수 선언 시 char* 를, float 형 변수를 가리키는 포인트 변수 선언 시 float* 를 사용해야 한다.
  • 주소에 해당하는 값을 가리킬 때는 * 를 사용한다.
  • 주소에 해당하는 값을 가리키는 * 연산과 변수에 주솟값을 나타내는 & 연산은 반대 기능.
  • 그래서 *(&)와 같이 두 연산을 같이 쓰면 서로 상쇄 

3. 배열과 포인터

  • "자료형 배열명[요소];"일 때 다음 코드는 동일하다.
    • 배열의 i번지 주소: 배열+i == &배열[i];
    • 배열의 i번지 값: *(배열+i) == 배열[i];
  1. 1차원 배열과 1차원 포인터
    • 1차원 배열에서 배열명만 단독으로 사용할 경우 1차원 포인터와 동일하다.
    • 1차원 배열일 때는 배열명[요소] 형태, *(배열명+요소)일 경우 값을 가리키고, 1차원 포인터일 때는 포인터[요소] 형태, *(포인터+요소)일 경우 값을 가리킨다.
  2. 2차원 배열과 1차원 포인터
    • 2차원 배열에서 배열명만 단독으로 사용할 경우 2차원 포인터와 동일하다.
    • 2차원 배열일 때는 배열명[요소] 형태, *(배열명+요소)는 1차원 포인터와 동일하고, 1차원 포인터에 대해 *과 []을 이용해야 값을 가리킬 수 있다.
  3. 2차원 배열과 포인터 배열