티스토리 뷰
포인터 활용
[1]포인터로 배열 참조
배열명 : 배열의 시작 주소를 의미하는 상수
배열의 시작 주소를 구할 때는 & 없이 배열명만 사용
배열명을 포인터처럼 사용 가능
- 인덱스를 사용하는 대신 배열의 시작 주소로 포인터 연산 을 하면 배열의 특정 원소에 접근 가능
*(arr+i 는 arr [i] 를 의미
- 배열의 시작 주소에서 데이터 타입 i개 크기만큼 증가된 주소에 있는 값
배열의 시작 주소로 초기화된 포인터를 이용해서 배열의 모든 원소에 접근 가능
포인터 변수를 배열 이름인 것처럼 사용 가능
포인터와 +,- 연산
* p + N : p가 가리키는 데이터형 N개 크기만큼 증가된 주소가 연산의 결과
* p - N : p가 가리키는 데이터형 N개 크기만큼 감소된 주소가 연산의 결과
* p - N : p가 가리키는 데이터형 N개 크기만큼 감소된 주소가 연산의 결과
[2]포인터와 배열 원소
배열의 원소를 가리키는 포인터는 배열의 어떤 원소든지 가리킬 수 있음 포인터가 배열의 원소가 아닌 일반 변수를 가리킬 때도 *(p+i) == p[1]는 항상 성립함
* 배열과 포인터의 차이점 *
* 배열이 메모리에 할당되고 나면 , 배열의 시작 주소 변경 불가
* 포인터 변수는 값을 변경할 수 있으므로 , 포인터 변수에 보관된 주소는 변경 가능
* 배열이 메모리에 할당되고 나면 , 배열의 시작 주소 변경 불가
* 포인터 변수는 값을 변경할 수 있으므로 , 포인터 변수에 보관된 주소는 변경 가능
포인터 연산
[1]포인터 증감 연산
포인터와++, 연산 : 포인터에대한 증감 연산 (++,--) 도 포인터형에 의해 연산의 결과가 결정
int arr [5];
int * p = arr [0];
for(i = 0 ; i <5 ; i ++, p++)
printf (“&d \ n”, *p );
[2]포인터 배열 처리
포인터 배열 : 주소를 저장하는 배열
형식 : 데이터 타입 * 포인터 변수명[크기];
* 배열명을 포인터 변수와 같이 연산에 의해 배열요소를 참조할 수있음
* 포인터 변수에 증감 연산자를 이용하여 배열요소를 참조할 수 있음
* 후위 증감 연산자가 , 전위 증감 연산자보다 우선순위가 높음
* 포인터 변수에 증감 연산자를 이용하여 배열요소를 참조할 수 있음
* 후위 증감 연산자가 , 전위 증감 연산자보다 우선순위가 높음
'JAVA기반 스마트웹 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글
구조체 (0) | 2021.07.29 |
---|---|
포인터와 문자열 (0) | 2021.07.29 |
포인터 기초 (0) | 2021.07.29 |
문자열 (0) | 2021.07.28 |
배열 (0) | 2021.07.28 |
댓글
© 2018 webstoryboy