C++ 프로그래밍/함수

    참조자의 반환

    참조자의 반환

    여기 글에서는 참조형과 참조에 의한 호출은 생략하겠습니다. 이해하는데 그렇게 어렵지 않고 참조형은 그냥 변수를 여러 별명으로 부르는 방법이기 때문입니다. 다른 블로그나 책을 추천합니다. 참조는 꼭 익히길 바랍니다. 저는 참조자의 반환을 잘 이해하지 못했었기 때문에 이 파트만 다루도록 하겠습니다. 함수에서 참조자를 반환할 수도 있습니다. 참조자를 반환하면 반환 과정에서 복사가 일어나지 않고 참조가 일어납니다. 물론, 이때 반환되는 변수는 함수가 끝나도 자동으로 소멸되지 않아야 합니다. 위의 줄에서??? 가 뜨는 분들을 위해 조금 설명하겠습니다. ヾ(^▽^*))) 괜찮습니다 저도 몰랐거든요. 전 책을 2번째 보고 난 후에 알게 되었어요. 참조 매개변수가 그 값을 복사하는 게 아니고 전달 인자의 별명을 매개변..

    함수로 배열을 전달, 반환

    함수로 배열을 전달, 반환

    함수로 배열을 전달하는 방법은 함수를 호출할 때 전달인자(argument)에 배열의 시작주소를 전달하는 것입니다. 하지만, 이제 함수에서 전달 받게 되면 방법이 두가지로 나뉘어지게 됩니다. 배열명[]로 받는 방법과 포인터로 받는 방법 #include //배열의 길이를 같이 전달 해줘야 한다. int findMaxValue(int a[], int len) { int maxVal = a[0]; for (int i = 1; i

    C++의 Static을 알아보자

    C++의 Static을 알아보자

    static은 정말 중요합니다. 제가 느끼기로 편리함과 위험성을 동시에 가지지만 제대로 알고 써야하기 때문입니다. 이 static 키워드는 변수나 함수에 대해 지정할 수 있는데, 다음과 같이 세가지 경우가 있습니다. 지역변수를 static으로 처리하는 경우 전역변수나 함수를 static으로 처리하는 경우 클래스의 멤버 변수나 멤버 함수를 static으로 처리하는 경우 세 개 모두 자주 쓰는 것 같습니다. 마지막 세 번째는 이 글에서 말고 클래스 카테고리에서 다루겠습니다. 링크를 걸어두겠습니다. (저는 이 책을 보기 전에 static을 구별하는 법을 모르고 있었습니다. 그냥 값이 유지되는 변수로만 생각하고 있었어요 이제 알았으니 됬죠.. 뭐...!( •̀ ω •́ )✧) 1. 정적 지역변수 변수의 가시 범..

    변수의 가시 범위와 생존기간

    변수의 가시 범위와 생존기간

    변수와 함수는 밀접하게 관련되어 있습니다. 예를 들어, 함수가 끝나면 지역 함수 내의 변수들과 매개변수들은 모두 자동으로 소멸됩니다. 모든 변수는 다음의 세 가지 속성이 있고, 이러한 속성에 따라 여러 가지로 분류할 수 있습니다. 범위(visibility): 코드 내에서 변수가 의미 있는 영역 생존기간(lifetime): 만들어지는 시점과 소멸되는 시점 연결(linkage): 외부에서 선언된 변수를 사용하는 방법 지역변수와 전역변수 변수는 의미를 갖는 범위에 따라 지역변수와 전역변수로 나눌 수 있습니다. 지역(local) 변수 중괄호 { }로 정의되는 블록 안에서 선언되는 변수로 블록 범위(block scope)를 갖는다. 함수 안에서 선언된 변수가 대표적인데, 변수가 선언된 블록(함수 몸체) 안에서만 ..

    디폴트 매개변수

    디폴트 매개변수

    C++함수에서는 매개변수에 대한 기본(default) 값을 지정할 수 있습니다. 만약 함수의 매개변수에 대응하는 인자가 함수의 호출 시에 생략되면 매개변수에 기본 값이 복사됩니다. 이것을 함수의 기본(디폴트) 매개변수(default parameter)라고 합니다. 주의할 점은디폴트 매개변수는 맨 뒤에서부터 앞쪽으로 순서대로 채워서만 정의할 수 있습니다. void add(int p1 = 10, int p2 = 20, int p3 = 30); //가능 void add(int p1, int p2 = 20, int p3 = 30); //가능 void add(int p1, int p2, int p3 = 30); //가능 void add(int p1 = 10, int p2 = 20, int p3); //불가능 vo..

    라이브러리 함수와 사용자 정의 함수

    라이브러리 함수와 사용자 정의 함수

    #라이브러리 함수 미리 만들어져서 제공되는 함수 printf(), getch() 등이 대표적인 라이브러리 함수이다. 다음은 라이브러리 함수들의 예를 표로 보여준다. 함수 원형 헤더 파일 용도 및 사용 예 iny getch(); 키보드에서 하나의 문자를 읽어서 반환함 예)ch = getch(); double cos( double x ); x에 대한 코사인 값을 계산하여 반환함 예)val = cos(3.14); double pow( double x, int y ); x의 y승을 계산하여 반환함 예)result = pow(x,10); int printf( const char *format [, argument]... ); "format"에서 지정하는 형태로 화면에 출력함 매개변수는 없을 수도 있고 여러 개일 ..

    parameter와 argument 차이점

    parameter와 argument 차이점

    본론부터 말하자면 parameter은 매개변수 즉, 함수 혹은 메서드 정의에서 나열되는 변수 명입니다. 반면 argument는 전달인자 즉, 함수 혹은 메서드를 호출할 때, 전달 혹은 입력되는 실제 값입니다. 단어 번역 의미 Parameter 매개변수 함수와 메서드 입력 변수(Variable) Argument 전달인자,인수 함수와 메서드의 입력 값(Value) Parmeter와 Arguement의 예시 parameter(매개변수) 다음 add 함수 정의에서 variable1과 variable2는 parameter입니다. int Add(variable1, variable2) { return variable1 + variable2; //매개변수 variable1과 variable2를 더하여 반환해준다 } a..

    함수란?

    함수(function)는 어떤 입력을 받아서 원하는 처리를 한 후 결과를 반환함. 가끔은 입력이 없거나(not parameter, not argument) 결과를 직접 반환하지 않는(void return) 함수도 있다. 또한, 함수(function)는 객체지향 언어에서 메소드(method)라고도 불림. 같은 코드들을 반복적으로 쓰이는 문제를 해결한다. 반복되는 코드를 함수로 만들어 사용하면 중복을 최소화하고 코드양을 줄인다. 이것은 개발은 물론이고 코드의 수정이나 유지 보수를 훨씬 편하고 쉽게 한다. 크고 복잡한 문제를 작고 쉬운 문제들로 나누어 해결하기 쉽게 한다. 즉, 하나의 큰 프로그램을 작은 부분들로 분리하여 구조적인 프로그래밍이 가능하게 한다. 이러한 문제 해결 방법을 분할 정복(divide a..