포인터란?
메모리 주소를 저장하기 위한 변수
포인터의 선언
int* ptr = &a;
저장하력는 자료형에 *를 붙이고 저장하려는 변수에 &를 붙임
포인터의 값 출력
printf("%d", *ptr);
포인터 변수의 이름에 *를 붙임
포인터 실습1
정수형 변수 a를 선언하고 a에 100을 저장함
포인터 변수 p를 선언하고 변수 a를 가리키도록 설정함
포인터 실습2
포인터 변수 p에 저장된 값을 출력
p가 가리키는 값을 출력
포인터 실습3
p가 가리키는 값에 100을 더함
포인터 실습4
크기가 3인 정수형 배열 num을 선언하고 10,20,30으로 초기화
포인터 변수 p를 선언하고 배열 num을 가리키도록 설정
p의 값, num 첫번째 원소의 주소, p가 가리키는 값, num 첫번째 원오의 값을 차례대로 출력
포인터 실습5
포인터 실습6
반복문을 통해서 배열의 값을 입력 받고, 그 값을 출력
조건:배열 입력 및 출력 시 &연산자를 사용하지 않고 i와 *을 사용
&num[i] 금지, num[i] 금지
포인터 실습7-1
포인터 실습7-2
포인터 실습8
포인터 변수를 통해 배열과 비슷하게 값에 접근이 가능하지만, 완전히 같다고 볼 수X
포인터 실습9
포인터 사용 예시-1
포인터 사용 예시-2
포인터를 매개변수로 전달하면 다른 함수에서 선언된 변수에 접근이 가능
포인터 실습10
get 함수 : 문자열 입력 함수
무한루프를 통해 문자를 1개씩 입력 받는다.
마지막에 입력 받은 \n은 NULL문자로 바꾼다
put 함수 : 문자열 출력 함수
입력 받은 문자열을 NULL을 만날 때까지
반복하여 문자 1개씩 출력한다.
포인터 실습11
strcpy 함수 : 문자열 복사 함수
매개변수로 전달된 문자열 변수에서
첫 번째 문자열 변수에
두 번째 문자열 변수의 문자열을 복사
Tip
문자열 마지막에는 \0이 들어 감
더블포인터(이중포인터)
더블포인터(이중 포인터)란 포인터 변수를 가리키는 포인터라는 뜻이며 다른 말로 하면 포인터의 포인터라고 할 수 있다. 포인터 변수도 메모리를 차지하고 있으므로 이 변수도 당연히 번지가 있다. 따라서 이 번지를 가리키는 또 다른 포인터 변수를 선언할 수 있는 것이다.