포인터 선언
문법) 타입 * 포인터이름 ;
포인터의 선언과 동시에 초기화
문법) 타입 * 포인터이름 = &변수이름; or 타입* 포인터이름 = 주소 값;
포인터 참조
int x = 7; // 변수의 선언
int *ptr = &x; // 포인터의 선언
int *pptr = &ptr; // 포인터의 참조
문제
다음과 같이 배열과 포인터가 초기화되고 그림처럼 메모리에 할당되었다고 가정한다.
double ary[5] = {1,2,3,4,5};
double *sa = ary;
double *sn = ary +2;
1) ary
2) *(ary+1)
3) sa+2
4) sa[3]
5) *sn
6) sn - sa
정답
1)111 해설) 배열명은 첫 버째 배열 요소 ary[0]의 주소 따라서 ary[0] 값 111
2)2 해설) 포인터 연산식 *(ary +1)은 배열 요소 표현식 ary[1]과 같다.
3)133 해설) sa가111이고 자료형이 double 이므로 111+(+2 sizeof(double))
4)4 해설) sa[3]은 *(pa+3)과 같음
5)3 해설) sn은 ary+2로 초기화 되었으므로 *sn은 세번 째 배열 요소가 된다.
6)2 해설) sn 과 sa은 주소값이 2 차이가 난다. 따라서 sn과 sa의 거리가 2이이 때문에 2가 출력
'Engineer Information Processing' 카테고리의 다른 글
[정보처리기사] 공격 유형 총정리(스푸핑,스니핑, 피싱 등) (0) | 2022.05.04 |
---|---|
[정보처리기사] 실기 모의고사 개념정리 -2 (0) | 2022.05.02 |
[정보처리기사 ] 실기 모의고사 개념 정리 -1 (0) | 2022.05.02 |
[정보처리기사] 2020년 기출 모음 (0) | 2022.04.29 |
[정보처리기사] 2021년 기출 모음 (1) | 2022.04.23 |