Coding/C++

(New) C++언어 공부 0003

  • -
728x90
반응형

1. 반복문

    • 미리 정의된 작업을 원하는 만큼(지정된 횟수, 조건을 만족할 때 까지 등) 실행하기 위해 사용하는 구문

    • 말 그대로 반복을 위해 사용

 

1-1. do-while 문

    • 우선 반복 실행할 구문을 1번 실행 시킨 뒤, 주어진 조건이 false가 되기 전 까지 반복을 실행

    • 구조

do
{
    반복 실행할 구문
    (조건의 결과를 변화시킬 수 있는 구문이 필요)
} while(조건);

 

1-2. for 문

    • 반복문의 제어변수와 반복문의 제어변수를 조절하는 구문을 한 줄에 처리하는 반복문

    • 구조

    

 

1-3. nested loop

    • 중첩 반복문의 수행 순서

 

 

2. 배열

    • 동일한 자료형의 연속적인 항목들이 같은 크기로 메모리에 저장되는 구조

    • 선언 방법

        • 자료형 배열이름[배열크기] → int arr[10]

    • 배열의 초기화 방식

        • 초기화 리스트 이용

        

 

        • 반복문 이용

    • 배열의 각 원소에 접근하기 위해 index를 사용

        • 예) int arr[5] = {10, 20, 30, 40, 50}; 에서 배열의 두 번째 값에 접근하기 위하여 arr[1]과 같이 사용

    • n차원 배열도 생성 가능

        • 예) int arr[3][4][5];

 

 

3. 2차원 배열

    • 우리가 아는 n x m 행렬과 유사

    • 선언 방법

        • 자료형 배열이름[n][m] → 예) int arr[3][4][5];

    • 인덱스 변수를 2개 사용

        

    • 배열의 초기화

        

  

        

    • 순차적인 접근이나, 초기화를 위해 중첩 반복문 사용

 

4. 함수

    • 특정한 연산만을 수행하게 하여 재사용을 가능하게 하고 프로그램의 가독성을 높이는 목적으로 사용

        • 모든 프로그램은 함수의 집합

    • 기본 구조

    

    • 반환하고 싶은 값이 없을 경우에는 함수의 반환형에 void를 이용

    • 함수 사용 시, 인자를 전달하고 싶지 않은 경우 디폴트 매개변수를 이용하는 방법이 있으며, 디폴트 매개변수는 뒤에서 앞쪽으로만 정의 가능

    • 프로그램의 윗부분에는 함수의 prototype만 작성하고, main문 아래에 함수를 정의 하여 사용하면 프로그램의 가독성이 높아짐

 

4-1. 함수의 오버로딩

    • 같은 이름의 함수를 여러 개 중복하여 정의하는 것

    • 이 때, 함수 매개변수나 반환형이 달라야 중복정의가 가능

        • 매개변수의 자료형이 다름

        • 매개변수의 수가 다름

        • 함수의 반환형이 다름

 

4-2. 함수의 호출 방식

    • call by value

    

    • call by reference

    

#include <iostream>
using namespace std;
void swap(int &rx, int &ry)
{
	int tmp;
	tmp = rx; 
	rx = ry; 
	ry = tmp;
}
int main()
{
	int a = 100, b = 200;
	cout << "swap() 호출전: a = " << a << ", b = " << b << endl;
	swap(a, b);
	cout << "swap() 호출후: a = " << a << ", b = " << b << endl;
	return 0;
}

 

4-3. 함수의 호출

    • 절차지향 프로그래밍 언어라는 것은 프로그램이 순서대로 실행 된다는 것을 의미

    • 함수를 사용하는 것을 “함수를 호출한다.” 라고 함

    • 함수를 호출할 경우, 함수를 호출한 위치에서 함수로 이동하여 함수의 내용을 수행하고, 함수의 수행이 끝나면 수행결과를 가지고 호출한 위치로 복귀

    • 함수가 호출 될 때는 함수가 끝난 뒤 돌아올 위치와 인자 값(argument), 반환 값을 메모리에 저장

    • 호출 과정

        • 

  

        • 

        • 

        • 

        • 

        • 

 

4-4. 재귀 함수

    • 함수 내에서 자기 자신을 호출하는 함수를 의미

    • 재귀함수에는 함수자체를 멈추게 하는 base case와 base case에 도달할 때까지 자기 자신을 호출하는 recursive case가 존재

    • 재귀함수를 작성하는 요령은 base case를 잘 정의하는 것이고, base case를 잘못 정의하였을 경우에 프로그램의  문제를 초래

    • 재귀함수 내에서 다른 연산을 하지 않고, 자기 자신을 호출하는 구문 만을 이용하는 특수한 형태를 tail-recursion 함수라 함

 

4-5. 재귀 함수의 예시

    • factorial 함수

        • factorial의 정의를 수학적으로 표현하면 아래와 같이 표현가능

        

        • 위의 수학적 표현을 함수로 아래와 같이 작성 가능

        

    • 호출 과정

        • 

        • 

        • 

        • 

        • 

        • 

        • 

    • 이전의 factorial 재귀함수를 tail-recursion 으로 표현하면 아래와 같이 표현가능

    

 

5. 변수의 범위

    • 변수를 사용할 수 있는 범위에 따라 변수는 전역변수, 지역변수, 정적변수로 구분

 

5-1. 지역변수

    • 지역변수는 { }(블록)으로 지정된 범위 내에서만 사용할 수 있는 변수를 의미

    • 지역변수를 사용할 수 있는 범위를 벗어나서 사용하고자 할 경우, 에러가 발생

    • 범위를 벗어나서 사용할 수 없기 때문에, 함수에서 반환 값으로 함수의 계산 결과를 전달한 것

 

5-2. 전역변수

    • 전역변수는 범위에 제약을 받지 않고 사용할 수 있는 변수를 의미

    • 전역변수가 존재하는 해당 파일의 어디에서나 사용 가능

    • 전역변수를 이용하면 함수에 인자를 넘기거나 반환 값을 받아오지 않아도 함수에 값을 넘겨주는 것과 반환 값을 받아오는 것 같은 효과를 줄 수 있지만, 많이 사용하는 것은 코드의 가독성이나 메모리 관리 측면에 좋지 못함

 

5-3. 정적변수

    • 정적변수는 변수의 범위를 벗어나도 메모리에서 사라지지 않고 남아있는 변수를 의미

    • 한 번 선언이 되면 선언된 위치에서는 계속 사용이 가능하며 사라지지 않기 때문에 이전에 가지고 있었던 값을 계속 유지

    • 정적변수는 딱 한 번만 초기화 된다는 특징이 있어, 함수의 호출 횟수를 세고자 하는 경우 많이 사용

    • 함수의 지역변수 자료형 앞 부분에 static이라는 키워드를 이용하여 선언 가능 

728x90
반응형

'Coding > C++' 카테고리의 다른 글

(New) C++언어 공부 0005  (0) 2024.08.29
(New) C++언어 공부 0004  (0) 2024.08.29
(New) C++언어 공부 0002  (0) 2024.08.29
(New) C++언어 공부 0001  (0) 2024.08.29
C++언어 공부 0003  (0) 2023.02.20
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.