4주차 요약

김서영·2021년 9월 26일
0

함수의 매개변수와 인자로 입력을 하며, 함수가 돌려주는 결과값으로 출력을 한다.

리턴값이나 매개변수가 없으면 void를 사용한다.
(단 void는 생략이 가능하다.)

return문은 결과값을 호출한 함수로 반환한다.
return문을 만나면 함수의 나머지 부분에 상관없이 함수의 실행을 종료하고 호출한 함수로 넘어간다.
main()함수의 경우 return문을 만나면 프로그램이 끝난다.

함수를 만드는 것을 함수를 정의 한다고 한다.
함수를 호출할 때는 함수 이름과 괄호 안에 argument를 개수만큼 써야 한다.

const char*나 char은 C++에서 std::string으로 대체할 수 있다.

함수의 머리 부분을 다음과 같이 하나의 문장 (세미콜론으로 끝남)으로
만드는 것을 함수 선언 또는 함수 원형(prototype)이라 한다.

선언한 함수를 main()함수에서 호출할 때, 함수가 main()함수의 뒤에 있을 경우, main()함수 앞에 선언문을 넣지 않으면 오류가 발생한다.
printf()함수도 #include<stdio.h>를 통해 <stdio.h>파일 안에 있는 _CRTIMP int __cdecl printf(const char *, ...);과 int printf(문자열,…);이 간접적으로 선언되었다.

함수가 함수 내에서 자신을 호출하는 것을 재귀호출이라고 한다.
그리고 그를 허용하는 것이 재귀함수라고 한다.
재귀함수는 반복문으로 변환할 수 있다.
재귀함수를 쓸 때는 스택 오버플로우를 주의해야한다.

헤더 파일을 이용하면 전처리기와 함수선언을 .c파일에 직접 안적을 수 있다.

기억 클래스 중 auto변수는 가장 많이 사용하는 기억 클래스이며, 선언한 함수 밖에서 사용하면 기억 영역이 소거된다.
auto변수는 생략이 가능하다.
C++11에서는 기억 클래스가 아닌 동적으로 변환이 가능해졌기 때문에 앞 확장자를 .cpp로 바꿀 경우, 오류가 발생한다.

정적(static)함수는 auto함수와 다르게 생략이 불가능하다.
단, 전역 함수는 기본적으로 정적함수이기 때문에 전역함수에서는 생략이 가능하다.
그러나 스택이 아니라 정적 데이터 영역에 저장되기 때문에 auto함수와 다르게 선언한 함수 밖에서도 사용할 수 있다.

구조체는 C에서는 변수의 모임으로만 사용했지만, C++에서는 변수와 함수의 모임으로 사용한다.
차이점은 C에서는 struct, C++에서는 class를 사용하는데, struct은 public을, class는 private를 기본으로 한다.
C++에서는 struct가 기본이기 때문에 따로 선언하지 않아도 된다.

구조체 변수가 자신의 멤버한테 접근하기 위해서는 ->"."를 사용해야 한다.


C++프로그래밍(21-2학기)한성현교수 강의 내용 요약

0개의 댓글