기록장
[C++][자료구조] 5주차 과제 본문
1. 다음과 같은 문장이 실행되면 i값은 얼마인가?
int i = 10;
int* p;
p = &i;
*p = 8;
i값은 8이 된다.
: 3번 줄에서 포인터 p의 내용에 i의 주소가 저장된다.
따라서 *p는 i의 내용을 가리키므로 i에는 8이 저장된다.
2. 다음과 같은 문장을 수행하고 난 뒤의 a[0]의 값은?
void sub(int b[]) {
b[0] = 0;
}
void main() {
int a[] = {1,2,3,4,5,6}
sub(a);
}
a[0]의 값은 0이다.
sub의 매개변수 b는 포인터이기 때문에 배열의 값을 직접 변경한다.
3. 단순 연결 리스트의 노드들을 노드 포인터 p로 탐색하고자 한다. p가 현재 가리키는 노드에서 다음 노드로 가려면 어떻게 하여야 하는가?
① p++;
② p--;
③ p=p->link;
④ p=p->data;
= 3번이다.
link는 링크 필드로, 다음 노드의 주소가 저장되어있다. 따라서 p에 p의 link를 저장하면 다음 노드로 갈 수 있다.
'코딩 공부 > C++' 카테고리의 다른 글
[C++] 함수와 배열인자 전달 (변수와 배열, 포인터, 주소) (0) | 2023.04.04 |
---|---|
[C++][자료구조] 살아남은 산천어 알 세기 (스택) (0) | 2023.04.04 |
[C++][자료구조] 연결 리스트로 구현한 큐 이해하기 (한줄씩 설명, 포인터) (0) | 2023.04.04 |
[C++][자료구조] 동적 메모리 할당 (변수, 배열) (0) | 2023.04.03 |
[C++][자료구조] 포인터 개념정리 (0) | 2023.04.03 |