Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++

  1. C++ static 키워드 완벽 가이드: 정적 변수와 정적 함수 이해하기

    C++ static 키워드란? static(정적) 키워드가 적용된 변수, 데이터 멤버 또는 함수는 프로그램 실행 전체 기간 동안 단 한 번만 메모리에 할당되며, 프로그램이 종료될 때까지 유지됩니다. 또한 정적 함수는 객체 생성 없이 클래스 이름만으로 직접 호출할 수 있다는 것이 가장 큰 특징입니다. static 변수의 주요 특징 정적 변수는 단 한 번만 초기화되며, 컴파일러가 프로그램이 끝날 때까지 해당 변수를 유지합니다. 함수 내부 또는 외부 어디에서든 정의할 수 있지만, 선언된 블록(스코프) 내에서만 접근 가능합니다. 초기값

  2. 재귀(Recursion)를 이용해 피보나치 수열을 구하는 C++ 프로그램

    재귀(Recursion)는 함수가 자기 자신을 다시 호출하는 프로그래밍 기법입니다. 피보나치 수열은 각 항이 앞의 두 항의 합으로 정의되기 때문에 재귀적으로 표현하기에 적합한 대표적인 예제입니다.다음은 재귀를 사용하여 피보나치 수열을 출력하는 C++ 프로그램입니다.예제 코드#include <iostream> using namespace std; int fib(int x) { if((x==1)||(x==0)) { return(x); }else { return(fib(x-1)+fib

  3. C++로 큰 수의 팩토리얼(계승) 구하기 – 재귀 함수 완벽 가이드

    C++로 큰 수의 팩토리얼(계승) 구하기팩토리얼은 1부터 n까지의 모든 양의 정수를 곱한 값입니다. 숫자가 조금만 커져도 결과값이 폭발적으로 증가하기 때문에, 큰 수의 팩토리얼을 다룰 때는 일반적인 int 대신 표현 범위가 넓은 unsigned long long int 자료형을 사용하는 것이 좋습니다.다음은 재귀 함수를 이용해 팩토리얼을 계산하는 C++ 프로그램 예제입니다.예제 코드#include <iostream> using namespace std; int fact(unsigned long long int n) {

  4. 팩토리얼(계승)을 활용하여 조합을 계산하는 C++ 프로그램

    조합(Combination)은 n개의 서로 다른 원소 중에서 r개를 순서에 상관없이 선택하는 방법의 수를 의미합니다. 수학적으로는 다음 공식으로 표현할 수 있습니다.C(n, r) = n! / (r! × (n−r)!)이 공식을 그대로 코드로 옮기면 조합을 손쉽게 계산할 수 있습니다. 아래는 팩토리얼(계승)을 이용하여 조합을 계산하는 C++ 프로그램 예제입니다.예제 코드#include <iostream> using namespace std; int fact(int n) { if (n == 0 || n == 1)

  5. C++로 숫자를 두 소수의 합으로 표현할 수 있는지 확인하는 방법

    이 글에서는 하나의 숫자가 두 개의 소수(prime number)의 합으로 표현될 수 있는지 확인하는 C++ 프로그램을 다룹니다. 이 문제는 유명한 골드바흐의 추측과 관련이 있는데, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 내용입니다.전체 예제 코드#include <iostream> using namespace std; int func(int num) { int i; int flag = 1; for(i = 2; i <= num/2; ++i) { if(num % i

  6. 반복문을 활용한 C++ 피보나치 수열 구현 방법

    피보나치 수열은 첫 번째와 두 번째 항이 각각 0과 1이며, 세 번째 항부터는 바로 앞의 두 항을 더한 값이 되는 수열입니다. 즉, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34와 같은 형태로 이어집니다. 이번 글에서는 재귀 함수가 아닌 반복문(iteration)을 사용하여 C++로 피보나치 수열을 구하는 방법을 알아보겠습니다. 반복문 방식은 재귀 호출에 비해 메모리 사용량이 적고 실행 속도가 빠르다는 장점이 있습니다.예제 코드#include <iostream> using namespace std; void f

  7. C++ static 키워드의 개념과 다양한 활용 방법

    C++에서 static 키워드는 변수, 데이터 멤버 또는 함수에 적용될 수 있으며, static으로 선언된 요소는 프로그램이 종료될 때까지 메모리에 유지됩니다. 특히 static 멤버 함수는 객체를 생성하지 않고도 클래스 이름을 통해 직접 호출할 수 있다는 점이 큰 특징입니다.static 변수의 주요 특징static 변수는 프로그램 실행 중 단 한 번만 초기화되며, 컴파일러는 이 변수를 프로그램이 끝날 때까지 유지합니다. static 변수는 함수 내부 또는 외부 어디에서든 정의할 수 있지만, 선언된 블록 내에서만 지역적으로 접근 가

  8. C++로 거듭제곱(pow) 함수 직접 구현하기

    거듭제곱 함수는 밑(base)과 지수(exponent)라는 두 개의 숫자가 주어졌을 때, 밑을 지수만큼 곱한 결과를 구하는 데 사용됩니다. 즉, 결과값은 밑의 지수 제곱이 됩니다.거듭제곱의 기본 개념다음 예시를 통해 개념을 쉽게 이해할 수 있습니다.밑(Base) = 2 지수(Exponent) = 5 2^5 = 32 따라서, 2의 5제곱은 32입니다.C++ 거듭제곱 함수 예제아래는 C++로 거듭제곱을 계산하는 전체 프로그램입니다.#include <iostream> using namespace std; int main(

  9. C++에서 main 함수의 올바른 선언 방법 완벽 정리

    C++ 프로그램의 실행은 main() 함수에서 시작됩니다. main()은 전역(global) 함수로, 모든 C++ 프로그램에 반드시 하나 존재해야 하며, 프로그램 실행의 출발점 역할을 합니다.main() 함수의 표준 선언 형태main() 함수의 표준 프로토타입은 다음 두 가지입니다.int main() { 함수 본문 } 또는 int main(int argc, char *argv[]) { 함수 본문 }여기서 사용되는 매개변수는 다음과 같습니다. argc − 프로그램이 실행되는 환경(명령줄)으로부터 전달받은 인수(argum

  10. C++ 열거형(enum) 사용법: 선언부터 값 할당까지 총정리

    열거형(Enumeration)은 C/C++ 언어에서 사용자가 직접 정의할 수 있는 데이터 타입입니다. 정수형 상수에 의미 있는 이름을 부여함으로써 프로그램의 가독성과 유지보수성을 크게 향상시킬 수 있습니다. 열거형은 enum 키워드를 사용하여 선언합니다.열거형의 기본 문법열거형을 선언하는 기본 문법은 다음과 같습니다.enum enum_name{const1, const2, ....... };각 구성 요소의 의미는 아래와 같습니다.enum_name − 사용자가 임의로 지정하는 열거형 이름입니다.const1, const2 − 열거형에 포

  11. C++ 정적(static) 멤버 정의 방법 완벽 가이드

    C++에서 클래스의 정적(static) 멤버는 static 키워드를 사용하여 정의합니다. 정적 클래스 멤버는 해당 클래스의 객체가 몇 개 생성되더라도 메모리에는 단 하나의 복사본만 존재합니다. 따라서 정적 멤버는 그 클래스의 모든 객체가 함께 공유하게 됩니다.또한 정적 멤버가 다른 방식으로 초기화되지 않은 경우, 클래스의 첫 번째 객체가 생성되는 시점에 자동으로 0으로 초기화됩니다.아래 프로그램은 정적 클래스 멤버를 정의하고 사용하는 방법을 보여줍니다.예제 코드#include <iostream> using namespac

  12. C++에서 코드 실행 시간을 측정하는 방법 (chrono 라이브러리 활용)

    C++에서 특정 코드 조각의 실행 시간을 측정해야 하는 경우가 자주 있습니다. 성능 최적화, 알고리즘 비교, 병목 지점 분석 등을 위해서는 정확한 시간 측정이 필수적입니다. 이 글에서는 C++11부터 표준으로 제공되는 chrono 라이브러리를 활용해 코드 실행 시간을 간단하게 측정하는 방법을 알아보겠습니다.기본 문법코드의 시작 지점과 종료 지점에서 시간을 기록하고, 그 차이를 계산하면 실행 시간을 구할 수 있습니다.auto start = high_resolution_clock::now(); // 시작 시간 기록 // 측정할 코드 작

  13. C++에서 0으로 나누기 오류를 감지하고 처리하는 방법

    C++ 프로그래밍에서 정수를 0으로 나누면 정의되지 않은 동작(undefined behavior)이 발생하거나 프로그램이 비정상 종료될 수 있습니다. 이를 방지하려면 예외 처리(Exception Handling) 메커니즘을 활용해야 합니다. 다음은 try-catch 블록을 사용하여 0으로 나누기 오류를 감지하고 처리하는 예제입니다.예제 코드#include <iostream> using namespace std; int display(int x, int y) { if( y == 0 ) { throw D

  14. C++ 변수 초기화 완벽 가이드: 정적 초기화와 동적 초기화

    변수(Variable)는 사용자가 직접 지정하는 이름으로, 데이터를 저장하기 위한 메모리 공간을 가리킵니다. 변수를 선언하고 초기화할 때는 자료형(data type)을 함께 사용하며, 이를 통해 해당 변수에 필요한 만큼의 메모리가 할당됩니다. C++에서는 int, char, float 등 다양한 자료형을 활용해 변수에 메모리를 할당할 수 있습니다. 변수 초기화의 두 가지 방법 변수를 초기화하는 방법은 크게 두 가지로 나뉩니다. 정적 초기화(static initialization) − 프로그램 코드 작성 시점에 변수에 값을 직접

  15. C++에서는 malloc() 반환값 캐스팅이 필요한 반면 C에서는 필요 없는 이유

    C 언어에서는 void 포인터가 객체 포인터 타입으로 암시적으로(implicitly) 변환됩니다. C89 표준에서 malloc() 함수는 void*를 반환하며, 그보다 이전 버전의 C에서는 char*를 반환했습니다. 반면 C++에서는 void*를 다른 포인터 타입으로 암시적으로 변환하는 것이 허용되지 않기 때문에, malloc()이 반환한 값을 대입하려면 명시적 캐스팅(explicit casting)이 반드시 필요합니다.C 언어에서의 메모리 할당 문법pointer_name = malloc(size);여기서 각 구성 요소는 다음과 같

  16. C++ 함수에서 배열을 반환하는 방법 – 포인터와 static 변수 활용

    C++에서는 배열 전체를 그대로 반환할 수 없습니다. 대신 배열의 첫 번째 요소를 가리키는 포인터를 반환하는 방식으로 이를 구현합니다.여기서 주의할 점이 있습니다. 함수 내부에서 선언된 일반 지역 변수는 함수가 종료되는 순간 스택에서 소멸하기 때문에, 그 주소를 외부로 반환하면 댕글링 포인터(dangling pointer)가 되어 심각한 오류를 일으킬 수 있습니다. 이를 해결하려면 지역 변수를 static으로 선언해야 합니다. static 변수는 프로그램이 종료될 때까지 메모리에 유지되므로, 함수가 끝난 후에도 해당 주소를 안전하게

  17. C++에서 단일 문자를 int(정수)로 변환하는 방법

    C++에서 단일 문자를 int(정수)로 변환하는 것은 ASCII 코드의 특성을 활용하면 매우 간단하게 처리할 수 있습니다. 다음은 문자 하나를 int로 변환하는 기본 예제입니다. 예제 #include <iostream> using namespace std; int main() {     char c = '8';     int i = c - 48;     cout << i;  &nb

  18. C++에서 int와 long의 차이점 완벽 정리

    C++에서 int와 long의 차이점 C++에서 정수를 다룰 때 가장 많이 사용되는 자료형은 int와 long입니다. 두 자료형 모두 정수 값을 저장하지만, 크기와 표현할 수 있는 값의 범위에서 중요한 차이가 있습니다. 이 글에서는 두 자료형의 특징과 차이점을 예제 코드와 함께 자세히 살펴보겠습니다. int란? int 자료형은 정수 값을 저장하기 위해 사용되며, 부호 있는(signed) 형태와 부호 없는(unsigned) 형태로 모두 선언할 수 있습니다. 일반적으로 32비트(4바이트) 크기를 가지며, long에 비해 적은 메모리

  19. C++ 참조 변수란 무엇인가? 개념부터 예제까지 한눈에 이해하기

    참조 변수(Reference Variable)는 이미 존재하는 변수에 붙이는 또 다른 이름, 즉 별칭(alias)입니다. 참조 변수는 한 번 어떤 변수를 가리키면 다른 변수를 참조하도록 변경할 수 없으며, 선언과 동시에 반드시 초기화해야 합니다. 또한 NULL 값을 가질 수 없다는 점이 포인터와 큰 차이를 보입니다.C++에서는 & 연산자를 사용하여 참조 변수를 선언합니다.참조 변수 선언 문법datatype variable_name; // 일반 변수 선언 datatype& refer_var = variable_name;

  20. C++ 파생 클래스 함수에서 부모 클래스 함수를 호출하는 방법

    C++에서는 범위 지정 연산자(::)를 사용하면 파생 클래스(자식 클래스)의 함수 내부에서 부모 클래스의 함수를 손쉽게 호출할 수 있습니다. 이 기법은 함수 오버라이딩 시 부모 클래스의 원래 동작을 유지하면서 추가 로직을 확장하고 싶을 때 특히 유용합니다.아래 예제를 통해 구체적인 사용 방법을 살펴보겠습니다.예제 코드#include <bits/stdc++.h> using namespace std; class p1 { public: void first() { cout << \nThe

Total 5981 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:25/300  20-컴퓨터/Page Goto:1 19 20 21 22 23 24 25 26 27 28 29 30 31