C와 C++의 경험이 있지만 오랜만에 C++을 다시 시작하시는 분들을 위한 걸음마: C++ 기초 법 정리 페이지입니다. 기본부터 차근차근 복습하며 즐겁게 학습해 나가요!
1. 걸음마: C++ 기초 문법 정리를 위한 기초 코드
한번 정독으로 읽어 보세요! 이전에 공부 하신 기억이 살아나세요? 거억이 살아나시면 상당한 수준입니다.
#include <iostream> // 표준 입출력을 위한 헤더 파일
// 메인 함수: 프로그램의 시작점
int main() {
// 변수 선언 및 초기화
int number = 5; // 정수형 변수
double decimal = 10.5; // 실수형 변수
char character = 'A'; // 문자형 변수
bool condition = true; // 불린형 변수
// 사용자로부터 숫자 입력 받기
std::cout << "Enter a number: ";
std::cin >> number;
std::cout << "You entered: " << number << std::endl;
// 연산자를 사용한 연산 수행
int sum = number + static_cast<int>(decimal); // 산술 연산 및 형 변환
bool isEqual = (number == static_cast<int>(decimal)); // 비교 연산
// 조건문: 참과 거짓에 따른 다른 동작 수행
if (condition) {
std::cout << "Condition is true" << std::endl;
} else {
std::cout << "Condition is false" << std::endl;
}
// 반복문: 0부터 number-1까지 출력
for (int i = 0; i < number; ++i) {
std::cout << i << " ";
}
std::cout << std::endl;
// 포인터와 참조: 변수의 주소와 참조
int* ptr = &number; // number의 주소를 가리키는 포인터
int& ref = number; // number의 참조
// 함수 없이 수행할 작업 (예: 두 배 곱하기)
int product = number * 2;
// 결과 출력
std::cout << "Sum: " << sum << ", Is Equal: " << isEqual << ", Product: " << product << std::endl;
std::cout << "Pointer value: " << *ptr << ", Reference value: " << ref << std::endl;
return 0; // 프로그램 정상 종료
}
2. 걸음마: C++ 기초 문법 정리를 위한 코드 분석
#include <iostream> // 표준 입출력을 위한 헤더 파일
이 줄은 프로그램에서 표준 입출력 스트림(std::cin
, std::cout
, std::endl
등)을 사용하기 위해 필요한 헤더 파일 iostream
을 포함시키는 전처리기 지시문입니다.
int main() {
int main()
함수는 모든 C++ 프로그램의 진입점(entry point)입니다. 프로그램 실행 시 이 함수가 가장 먼저 호출됩니다. main
함수가 int
타입을 반환하는 이유는 운영체제에 프로그램의 종료 상태를 알려주기 위해서입니다.
int number = 5; // 정수형 변수
double decimal = 10.5; // 실수형 변수
char character = 'A'; // 문자형 변수
bool condition = true; // 불린형 변수
여기서는 네 가지 다른 데이터 타입의 변수를 선언하고 초기화하고 있습니다. 각각 정수, 실수, 문자, 불리언 값을 저장하기 위한 변수입니다.
std::cout << "Enter a number: ";
std::cin >> number;
std::cout << "You entered: " << number << std::endl;
사용자에게 숫자를 입력하라는 메시지를 출력하고 (std::cout
), 사용자로부터 입력을 받아 (std::cin >> number
) 그 값을 number
변수에 저장합니다. 그리고 입력받은 숫자를 출력하여 확인합니다.
int sum = number + static_cast<int>(decimal); // 산술 연산 및 형 변환
bool isEqual = (number == static_cast<int>(decimal)); // 비교 연산
sum
변수는 사용자가 입력한number
와decimal
변수를 정수로 형변환한 값의 합을 저장합니다.static_cast<int>(decimal)
는decimal
변수의 값을 정수형으로 명시적으로 변환합니다.isEqual
변수는 사용자가 입력한number
가decimal
의 정수로 변환된 값과 같은지의 여부를 불리언 값으로 저장합니다.
if-else
구문은 condition
변수의 값이 참(true
)인지 거짓(false
)인지에 따라 다른 메시지를 출력합니다. 이 경우 condition
은 true
로 초기화되어 있으므로 “Condition is true”가 출력됩니다.
for (int i = 0; i < number; ++i) {
std::cout << i << " ";
}
std::cout << std::endl;
for
반복문은 0부터 시작해서 number
보다 하나 작은 값까지의 모든 정수를 출력합니다.
int* ptr = &number; // number의 주소를 가리키는 포인터
int& ref = number; // number의 참조
- 포인터
ptr
는number
변수의 주소를 저장합니다. 포인터는 변수의 메모리 주소를 저장하는데 사용됩니다. - 위 코드의
int* ptr
는ptr
이라는 이름의 포인터 변수를 선언하는 것입니다. 이 포인터는int
타입의 데이터를 가리키도록 설계되었습니다. 즉,ptr
은int
타입의 데이터의 메모리 주소를 저장할 수 있습니다. &number
는number
변수의 주소 연산자입니다. 이 연산자는number
변수의 메모리 주소를 반환합니다. 그래서&number
는number
가 저장되어 있는 메모리 위치를 나타냅니다.- 결과적으로,
ptr
포인터는number
변수가 저장된 메모리의 주소를 가지게 됩니다. 이를 통해ptr
을 이용하면number
변수를 간접적으로 조작할 수 있습니다. 예를 들어,*ptr
(역참조 연산자를 사용)을 통해 해당 주소에 저장된 값을 읽거나 변경할 수 있습니다. - 참조
ref
는number
변수의 별명(alias)이며,number
에 대한 참조를 생성합니다. - 이 코드에서
int& ref
는ref
라는 이름의 참조 변수를 선언하는 것입니다. 참조는 별명(alias)과 같은 개념으로, 한 번 초기화되면 다른 변수를 가리키도록 변경할 수 없습니다.ref
는number
변수에 직접적으로 연결되어 있으며,ref
를 통해number
의 값을 읽거나 수정할 수 있습니다. - 참조는 메모리 주소를 직접 다루지 않고, 기존 변수를 새로운 이름으로 다룰 수 있게 해줍니다.
ref
를 사용하여 값을 변경하면, 그 변경은number
에도 영향을 미치게 됩니다. 이는ref
와number
가 메모리 상에서 동일한 위치를 가리키기 때문입니다.
int product = number * 2;
product
변수는 사용자가 입력한 number
를 2배 한 값입니다.
std::cout << "Sum: " << sum << ", Is Equal:
sum을 한번 출력해볼가요? 얼마가 나오세요? 이전 챕터에서 어제 했는 방법으로 진행해볼가요?
3. 걸음마: C++ 기초 문법 정리를 위한 코드의 결과
4. 걸음마: C++ 기초 문법 정리 결론
상기 C++ 프로그램은 기본적인 변수 선언, 사용자 입력 처리, 형 변환, 조건문, 반복문, 포인터 및 참조 사용을 보여줍니다. 사용자로부터 입력받은 숫자를 이용하여 산술 연산을 수행하고, 조건에 따른 출력, 그리고 숫자만큼 반복하며 값을 출력합니다. 또한, 포인터와 참조를 통해 변수의 메모리 주소와 직접적인 연결을 이해할 수 있으며, 결과적으로 계산된 합계, 동등 비교, 두 배 곱셈의 결과를 표시합니다. 프로그램은 변수의 다양한 사용 방법과 기본적인 C++ 문법의 예를 제공합니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.