C 언어
C++에서 변수는 프로그래머가 데이터를 저장하고 조작할 수 있게 하는 이름이 붙은 저장 위치입니다. 모든 변수는 명시적 타입을 가지며, 이는 메모리 크기, 허용되는 값의 범위, 수행 가능한 연산을 결정합니다.
이 튜토리얼에서 다룰 내용:
int – 소수점이나 지수 부분이 없는 정수 (예: 120, -90)
double – 배정밀도 부동소수점 숫자 (예: 11.22, 2.345)
char – 작은따옴표로 묶인 단일 문자 리터럴 (예: 'a', 'm', 'F', 'P', '}')
float – 단정밀도 부동소수점 값 (예: 1.3, 2.6)
string – 큰따옴표로 묶인 문자 시퀀스 (예: "How are you?")
bool – true 또는 false 값 저장
int)와 중복 불가C++는 풍부한 기본 타입을 제공합니다. void 타입은 값이 없으며, 일반적으로 반환 값이 없는 함수의 반환 타입으로 사용됩니다.
산술 타입은 두 범주로 나뉩니다:
float (약 32비트), double (약 64비트), long double (구현에 따라 약 96/128비트)bool. 정수 타입은 부호 있는(signed) 또는 부호 없는(unsigned)일 수 있음부호 있는 타입은 음수, 0, 양수를 표현합니다. 예: 8비트 부호 있는 char 범위는 -127~127입니다.
부호 없는 타입은 0 이상의 값만 가집니다. 예: 8비트 부호 없는 char 범위는 0~255입니다.

식별자는 문자, 숫자, 밑줄을 포함할 수 있습니다. 길이는 무제한이며 대소문자를 구분합니다:
int guru99, gurU99, GuRu99, GURU99;
예약 키워드는 식별자로 재사용할 수 없습니다. 명확한 명명 규칙을 채택하면 가독성이 향상됩니다: 변수는 소문자, 여러 단어는 camelCase 또는 snake_case, 클래스 이름은 대문자로 시작.

int a = 5; int b; char c = 'A'; int a, b; a = b = 1000; int a(5); int b{5};
초기화 후 값이 변경되지 않아야 할 때 const를 사용하세요:
const int bufSize = 512; // 입력 버퍼 크기
const 변수는 반드시 초기화되어야 하며, 그렇지 않으면 컴파일러가 오류를 냅니다.
const int i = get_size(); // OK: 런타임 초기화 const int j = 42; // OK: 컴파일타임 초기화 const int k; // error: 초기화되지 않은 const int i = 42; const int ci = i; // OK: i의 복사본
범위는 이름이 보이는 영역을 정의합니다. 변수는 선언 지점부터 포함된 블록의 끝까지 접근 가능합니다.
#include <iostream>
int main() {
int sum = 0;
for (int val = 1; val <= 10; ++val)
sum += val;
std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
main은 전역 범위sum은 main 내부 블록 범위val은 for 루프 내부 지역 범위#include <iostream>
using namespace std;
int reused = 42; // 전역 범위
int main() {
int unique = 0; // 블록 범위
cout << reused << " " << unique << endl; // 42 0
int reused = 0; // 지역 reused가 전역을 가림
cout << reused << " " << unique << endl; // 0 0
cout << ::reused << " " << unique << endl; // 42 0
return 0;
}
C++는 특정 조건에서 암시적 변환을 수행합니다. 주요 규칙:
false, 그 외 값은 true.
bool b = 42; // b는 true
true는 1, false는 0.
bool b = true; int i = b; // i는 1
int i = 3.14; // i는 3
int i = 3; double pi = i; // pi는 3.0
unsigned char c = -1; // 8비트 char에서 255
부호 있는 정수와 부호 없는 정수를 혼합 사용 시, 음수 부호 있는 값이 예기치 않게 큰 부호 없는 값으로 변환될 수 있습니다.
register 키워드를 사용하여 자주 접근하는 변수를 CPU 레지스터에 저장할 것을 제안할 수 있습니다. 최신 컴파일러는 보통 이 힌트를 무시하고 자체 최적화를 수행합니다.
register int i;
주석은 컴파일러가 무시하며 코드 문서화 용도로 사용됩니다:
//로 시작/* ... */로 구분/* This is a comment */ /* C++ comments can also span multiple lines */
이스케이프 시퀀스는 출력 불가능하거나 특수한 문자를 표현합니다:
| 이스케이프 | 설명 |
|---|---|
| \n | 줄바꿈(Newline) |
| \t | 수평 탭 |
| \\ | 백슬래시 |
| \b | 백스페이스 |
| \r | 캐리지 리턴 |
| \v | 수직 탭 |
| \f | 폼피드 |
| \a | 경고(벨) |
| \" | 큰따옴표 |
| \' | 작은따옴표 |
| \? | 물음표 |
cout << '\n'; // 줄바꿈 cout << "\tguru99!\n"; // 탭 + 텍스트 + 줄바꿈
일반화된 시퀀스는 16진수 또는 8진수 값을 사용합니다:
\7 // 벨 \12 // 줄바꿈 \40 // 공백 \x4D // 'M'
C 언어
코드 블록을 여러 번 실행해야 하는 상황이 있을 수 있습니다. 일반적으로 문장은 순차적으로 실행됩니다: 함수의 첫 번째 문장이 먼저 실행되고, 그 다음 두 번째, 이런 식으로 진행됩니다. 프로그래밍 언어는 더 복잡한 실행 경로를 허용하는 다양한 제어 구조를 제공합니다. 루프 문(statement)은 문장이나 문장 그룹을 여러 번 실행할 수 있게 하며, 대부분의 프로그래밍 언어에서 루프 문의 일반적인 형태는 다음과 같습니다. C++ 프로그래밍 언어는 루핑 요구사항을 처리하기 위해 다음 유형의 루프를 제공합니다. 번호루프 유형 및
C++은 다음과 두 가지 문자열 표현 방식을 제공합니다. C-스타일 문자열 표준 C++과 함께 도입된 string 클래스 타입 C-스타일 문자열 C-스타일 문자열은 C 언어에서 유래했으며 C++에서도 계속 지원됩니다. 이 문자열은 실제로는 null 문자 \0로 끝나는 1차원 문자 배열입니다. 따라서 null-종료 문자열은 문자열을 구성하는 문자들에 이어 null 문자가 뒤따릅니다. 다음 선언과 초기화는 Hello라는 단어로 이루어진 문자열을 생성합니다. 배열 끝에 null 문자를 담기 위해, 문자열을 담는 문자 배열의 크기는