Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

자료구조 구현을 위한 C 프로그래밍 기법 - 포인터 본문

Class/자료구조, 알고리즘

자료구조 구현을 위한 C 프로그래밍 기법 - 포인터

김브래 2023. 2. 15. 18:30

포인터 : 개념


포인터 개념

변수 메모리 주소 값
 

포인터변수

- 주소 저장하는 특별한 변수
- 포인터 변수어떤 변수주소저장하고 있다는 것은 포인터 변수변수가리키고 있다의미
- 포인터 변수이용하여, 연결된 주소 변수 영역액세스
- 포인터 변수를 간단히 포인터라고 함

■ 형식

주소 연산자 "&"는 뒤에 오는 변수명 주소표시한다.

포인터(참조) 연산자 "*" 뒤에 오는 포인터 명 주소이며 주소지정하는 위치 데이터 값 나타낸다.


포인터 : 포인터 선언


포인터 선언 형식


포인터 : 포인터 연산


포인터 연산자

주소 연산자 : &                                          포인터(참조) 연산자 "*"
- 변수주소 얻기 위해 사용

 

참조 연산자 : *
- 저장주소에 있는 (변수에 저장된 값)액세스하는 연산자

포인터의 초기화

- 일반 변수초기화하는 방법같음
 

1. 주소 연산자를 사용하여 변수 주소지정

 

2. 동적 메모리할당하고시작 주소 포인터 으로 지정

동적 메모리할당하는 malloc()함수를 사용하여 문자형(char) 공간 100개를 할당하고,

그 시작 주소를 포인터 ptr에 저장한다.

 

3. 문자형 포인터에 문자열 시작 주소 지정

문자열 자료형 일반 자료형 다르게 문자열 지정만으로 그 시작 주소를 전달할 수 있다.

korea문자열이 ptr저장되는 것이 아니라  korea문자가 저장된 위치의 시작 주소가 포인터 ptr저장된다.

 

4. 배열 이름을 이용하여 배열 시작 주소 지정

배열 이름은 문자열과 마찬가지로 그 시작 주소를 전달할 있다.

포인터 변수 ptr은 문자형(char) 요소를 100개 가진 배열 A의 시작 주소를 지정한다.

 

5. 배열첫 번째 요소의 주소 이용하여 배열 시작 주소 지정

배열 시작배열첫번째 요소, , 0인덱스의 배열 요소를 말한다.

그러므로 0번 배열 요소를 사용하여 배열의 시작 주소를 포인터에 전달할 수 있다.

인덱스표시하는 배열의 각 요소는 그 자체로는 주소전달할 수 없기 때문에 주소 연산자 &사용하여야 한다.

 

포인터 배열

포인터 자료형 배열 구성

- 여러 포인터하나배열로 구성한 배열특징포인터특징모두 활용할 수 있다.

- 포인터 배열에서 각 배열요소포인터
- 2차원 문자배열 1차원 포인터배열 표현
2차원 배열의 행의 개수 : 포인터배열의 크기

- 포인터배열의 각 배열요소 : 각 문자열에 대한 시작주소를 가진 포인터

 

포인터 포인터

- 포인터가리키고 있는 포인터. 이중 포인터