인프런 커뮤니티 질문&답변

주서님의 프로필 이미지

작성한 질문수

(2024) 일주일만에 합격하는 정보처리기사 실기

(기출) 2023년 1회 코드해석 문제

1회 코드해석 문제 질문있어요

해결된 질문

24.09.06 11:52 작성

·

79

·

수정됨

0

25분4초 영상 질문입니다.

 

1번에서 int*a가 미리 선언되었기 때문에 스왑이 정상작동 하는것일까요?

 

2번답 nx라는건 이상하게 보자말자 감이 오던데요..!

혹시 sizeof(a)-1 를 했다면 답으로 되었을까요..? 궁금하네요

 

 

 

29분 12초 상속문제 입니다.

 

이상하게 상속문제만 보면 손댈 엄두가 안나네요..

시작만 하면 풀리는데 그 시작이 안됩니다 ㅠㅠ...

Venicle obj = new Car("Spark")에서

new Car가 클래스 이름을 지칭하기 때문에

같은 클래스 이름을 찾아보면 되는걸까요?

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

2024. 09. 06. 13:30

안녕하세요.

  1. 네 맞습니다. 포인터 변수로 받아서 그렇습니다. 지금 함수에서는 무조건 배열을 파라미터로 입력받아야합니다. 이 경우에는 포인터 변수나 배열 형태로 입력 받아야 합니다. int a[]로 넣어도 정상 동작합니다.

 

  1. 지금은 배열의 길이를 해야합니다. sizeof하면 [ int 데이터 크기 X 요소 개수 ]만큼 용량 바이트가 나옵니다. 그렇게 쓰면 틀립니다. 정상적으로 작동하지 않습니다.

길이를 측정하려면 sizeof(myArray) / sizeof(myArray[0]);

이렇게는 할 수 있겠습니다. 그런데, 아마 문제에서 변수로 쓰라고 보기가 나오거나 하지 않을까 싶어요.

 

 

  1. 먼저 자식생성자를 보고 부모로 넘어가는 것이 편합니다. new 뒤가 어떤 생성자를 호출하느냐이니까 당연히 Car의 문자열 매개변수 1개짜리 생성자를 보러 가시는게 맞습니다.

 

 

주서님의 프로필 이미지
주서
질문자

2024. 09. 06. 14:47

1번 질문에 대한 재질문 입니다

그러면 스왑 변수는 포인터 변수나 배열 2가지로 받는거에 대해선 다 정상적으로 작동한다고 봐야할까요?

그냥 단순int a만 넣으면 적용이 안될거 같아서요..

주말코딩님의 프로필 이미지
주말코딩
지식공유자

2024. 09. 06. 14:51

단순히 '교환' 하는 함수를 뜻하시는 것이면 전역변수로 처리하는 방법도 있긴합니다.

 

이번 24년 1회 해설영상 한번 보시면 도움될 겁니다.

 

기본적으로 함수의 파라미터로 받아서 교환하고 싶다면, 포인터 변수로 받아야 한다고 알고 계시면 됩니다. (주소를 넘겨줘야함)

주서님의 프로필 이미지

작성한 질문수

질문하기