민돌이2 2022. 7. 20. 15:13

C++ 프로그램은 함수들의 집합이고, 함수는 구문들의 집합이다. 아래의 코드에서 봐야 할 두 종류의 구문이 있다. 하나는 변수를 선언하는 선언 구문(declaration statement)이고, 다른 하나는 변수에 값을 대입하는 대입 구문(assignment statement)이다.

int main()
{	
	using namespace std;

	int carrots; //정수 변수를 선언
	carrots = 25; //변수에 값을 대입

	cout << "나는 당근을 ";
	cout << carrots; //변수의 값을 출력
	cout << "개 가지고 있다.";
	cout << endl;

	carrots = carrots - 1; //변수의 값을 변경

	cout << "아삭아삭, 이제 당근은 " << carrots << "개이다." << endl;

	return 0;
}

 

 

선언 구문과 변수

컴퓨터에 어떤 정보를 저장하려면 그 정보가 얼마나 많은 기억 공간(memory storage)을 차지하는지 알아야 하며, 또한 그 정보가 저장될 위치도 알아야 한다. C++에서 이것을 하는 가장 쉬운 방법은 선언 구문을 사용하는 것이다. 선언 구문은 정보를 저장할 기억 공간의 형태를 지정하고, 그 위치가 어디인지 말해 주는 꼬리표(label)를 제공한다.

int carrots;

위 구문은 하나의 정수를 저장할 수 있는 기억 공간을 프로그램이 사용할 예정이라고 선언한다. 컴파일러는 이르 ㄹ위한 기억 공간은 대입하고, 그 위치가 어디인지 말해 주는 꼬리표를 붙이는 작업을 수행한다. 다음으로 해야 할 일은 저장된 데이터의 이름을 선언하는 것이다. 선언 구문은 데이터형을 선언할 뿐만 아니라, 앞으로 프로그램에서 그 기억 공간에 저장되어 있는 값을 carrots이라는 이름으로 사용하겠다고 선언하는 것이다. carrots과 같은 이름을 변수(variable)라고 부른다. C++에서는 모든 변수를 사용하기 전에 미리 선언해야 한다.

이와 같은 선언 구문을 정의 선언 구문, 또는 정의(definition)라고 부른다. 프로그램에 정의 선언 구문이 있으면 컴파일러는 그 변수를 위해 메모리 공간을 대입한다.

 

 

대입 구문

대입 구문은 기억 위치에 어떤 값을 대입한다.

carrots = 25;

위 구문은 변수 carrots로 나타내는 기억 위취에 정수 25를 대입한다. 여기서 등소(=)는 대입 연산자(assignment operator)라고 부른다. C++의 특징은 대입 연산자를 연이어 사용할 수 있다는 것이다.

yamaha = baldwin = steinway = 88;

대입 구문은 오른쪽에서 왼쪽으로 차례대로 처리된다. 즉, 88이 steinway에 대입되고 steinway의 값이 baldwin에 대입되고 baldwin의 값이 yamaha에 대입된다.

 

 

cout의 새로운 사용법

cout은 문자열 뿐만 아니라 변수의 값도 출력이 가능하다.

cout << carrots;

위 구문은 변수 carrots에 저장되어 있는 값인 정수를 출력한다. 내부적으로 위 구문은 두 가지 작업을 한다. 먼저 cout은 carrots를 정수 25로 대체한다. 그 후, 정수 25를 적당한 출력 문자 2와 5로 변환한다. 여기서 알아야 하는 것은 정수 25와 문자열 "25"는 완전히 다르다는 것이다. 문자열 "25"는 문자 '2'와 문자 '5'를 단순히 붙여 놓은 것이다.

728x90