110 likes | 204 Views
New C Programming with a workbook. Chapter 6 C! 최대의 난관 포인터. 포인터란 ?. 포인터 번지 또는 주소를 의미 포인터 변수 C 언어에서 번지수를 저장할 수 있는 변수. 포인터란 ?. 포인터 변수와 메모리 구조. 포인터란 ?. 포인터 변수 포인터 변수의 선언 포인터 변수의 대입 형식 ptr 에 “Lee BumJong” 을 대입하는 것이 아니라 ptr 변수에 “Lee BumJong” 이 저장된 시작주소를 대입하라는 의미
E N D
New C Programming with a workbook Chapter 6 C! 최대의 난관 포인터
포인터란? • 포인터 • 번지 또는 주소를 의미 • 포인터 변수 • C언어에서 번지수를 저장할 수 있는 변수
포인터란? • 포인터 변수와 메모리 구조
포인터란? • 포인터 변수 • 포인터 변수의 선언 • 포인터 변수의 대입 형식 • ptr에 “Lee BumJong”을 대입하는 것이 아니라 ptr 변수에 “Lee BumJong”이 저장된 시작주소를 대입하라는 의미 • 윈도우의 경우 포인터 변수 크기는 4바이트 데이터형 *변수명; char* ptr; ptr = "Lee BumJong";
주소를 알려주는 번지 연산자 & • 주소 연산자 &(ampersand) • 변수가 저장된 주소를 알려주는 연산자 • 예> number라는 변수가 있을 경우,&number는 number의 주소를 알려주는 연산 • 주소는 자료를 저장하는 컴퓨터의 메모리상의 주소를 의미 • 주소 연산자 실습 • [교재 174page] 코드 6-1 참조 printf(“%d %d”, number, &number);
간접 연산자 *와 포인터 • 간접 연산자 * • 포인터 변수에 저장된 주소에 저장되어 있는 값을 돌려주는 연산자 • 간접 연산자 사용의 주의 사항 • 포인터 변수에 저장된 주소를 돌려주는 것이 아님 • 포인터 변수에 저장된 주소에 저장된 내용을 돌려 줌 • 간접 연산자 실습 - 1 • [교재 176page] 코드 6-2 참조 • 변수가 배정된 번지 값은 매번 달라짐 • int *ptr; • 정수형 포인터 변수 ptr을 선언 • 간접 연산자는 포인터 변수에 저장된 번지의 내용을 간접적으로 참조할 수 있는 연산자
간접 연산자 *와 포인터 • 간접 연산자 실습 - 2 • [교재 178page] 코드 6-3 참조 • number1, number2, *ptr의 값은 모두 동일 int number1, number2; int *ptr; number1 = 3; Next Page Cont.
간접 연산자 *와 포인터 ptr = &number1; 3 number2 = *ptr;
간접 연산자 *와 포인터 • 포인터의 선언과 의미 3을 참고함(간접 연산자 역할) 포인터 변수 선언
주소에 의한 참조와 값에 의한 참조 • 값에 의한 참조 : 값을 넘겨줌 • [교재 181page] 코드 6-4 참조
주소에 의한 참조와 값에 의한 참조 • 주소에 의한 참조 : 주소를 넘겨줌 • [교재 183~184page] 코드 6-5 참조