- 연산자
컴퓨터 언어에서 제공되는 자료형과 가장 밀접한 관계를 갖는 것 중의 하나가 연산자이다. 그 이유는 연산 대상과 연산 결과가 저장되는 자료형에 따라 연산 결과가 결정되기 때문이다.
= 등호의 의미.
대입연산자라고 하며 일반적인 수학에서의 등호와는 다른 의미를 가지고 있다. 오른쪽에 있는 것을 왼쪽에 대입해라, 할당하라 라는 뜻이다.
Ex> int a = 5; => int a에 5를 넣어라. 라는 뜻. 왼쪽에는 변수가 위치할 수 있고 등호 오른편에는 변수와 상수 둘다 가능하다. 상수는 변경할 수 없는 값이기 때문에 등호 왼족에 위치할 수 없다.
10 = a; 라고 쓴다면 다음과 같은 에러가 뜬다.
초기화
프로그래밍에서 가장 중요하고 기초가 되는 초기화를 알아보자. 변수는 메모리 공간에 어느 지점을 의미한다고 했다. 메모리 공간 어딘가에 할당을 받아생성이 되는데 그럼 그곳엔 값이 아예 존재하지 않을까? 이전에 다른 프로그램에서 사용하고 버린 메모리 공간이라면?값은 알 수가 없다. 그 지점에 어떤 값이 있었는지 그렇기 때문에 초기화를 한다.
- 소스 코드 예시
int a;
std::cout << a;
위와 같이 초기화 없이 a 값을 출력하려고하면 컴파일시 다음과 같은 경고가 뜬다.
컴파일 성공을 했으니 실행을 해보면 런타임 에러가 발생한다.
컴파일 시 경고 메세지는 프로그램 실행에 영향을 미칠 때도 있고, 그렇지 않은 경우도 있다. 그래서 실행 파일이 생성되고 빌드 결과가 성공으로 표시된다. 하지만 실행하면 이와같이 a라는 변수가 초기화되지 않았다는 오류 문구다. 변수가 선언되면 주 기억장치의 임의의 공간에 할당된다. 컴퓨터의 기억장치는 초기화되어 있지 않는다는 것을 기억해야한다. 그리고 남아있는 내용을 쓰레기 값이라고 한다.
* 런타임 에러
런타임 에러(Runtime Error)는 문법 측면에서 볼 때 코드에는 문제가 없으나 변수의 초기값이나 잘못 할당된 기억공간 때문에 프로그램 실행 중에 잘못된 메모리 참조나 논리적 오류가 발생하는 에러이다.
초기화는 다음과 같이 선언과 함께 값을 지정해주는 것을 초기화라고 한다. 값은 0이 아닌 다른 값도 상관 없다.
Ex> int a = 0;
산술 연산자.
C++ 기본 적인 연산이다. 사칙연산과 같은 역할을 수행한다. %연산자는 나머지를 구하는 것만 빼고.
단축 연산자.
위에 있던 산술연산자를 쓸 때 예를 들어 변수 a에 3을 더한다면 a = a + 3; 이렇게 써야하는데 a가 두번 반복이 된다. 이런 경우에 이를 간단하게 표현 할 수 있는 연산자가 단축 연산자이다. a = a + 3; => a += 3;
논리형
C++에서 논리형은 bool이라는 자료형을 갖는다. 논리형 참과 거짓 이 두가지만을 나타내는 자료형이다. 값이 0이면 false 0이 아니면 true 값을 갖는 자료형이다.
관계 연산자와 논리 연산자
관계 연산자는 두개의 값에 대한 크기를 비교하는 연산자로 크다, 작다, 크거나 같다, 작거나 같다, 같다(==), 같지 않다(!=) 이런 연산이 가능하며 연산의 결과는 참과 거짓 중 하나의 값이 된다. 논리 연산자의 경우는 두개 이상의 연산 결과에 대해 모두 참인경우, 하나만 참이어도 참인 경우와 같이 연산 결과 간의 관계에 의해 판단하는 연산자이다. 이 연산자 또한 참과 거짓 중 하나의 결과 값을 가진다.
*리다이렉션(redirection) 기호는 >> 와 << 가 있다. 이는 입출력 방향을 전환하는 역할을 한다. << 기호는 오른쪽의 내용을 왼쪽 장치로 입출력 방향을 결정, >> 기호는 왼쪽의 내용을 오른쪽에 명시한 곳으로 입출력 방향을 결정한 것이다. 따라서 cout의 << 는 [출력 내용]을 cout 장치로 보내라는 뜻이고 cin의 >> [변수] 는 cin에서 입력받은 내용을 [변수]로 보내라는 뜻이다.
cout << [출력 내용];
cin >> [변수];
- 출처 : 열혈강의 C++ 언어본색
※ 책을 보고 공부한 내용을 정리하였기때문에 내용이 책과 다를 수 있습니다.
'Program Languege > C/C++' 카테고리의 다른 글
조건문 switch (0) | 2013.02.14 |
---|---|
조건문 - if (0) | 2013.02.14 |
형 변환 (0) | 2013.02.13 |
데이터, 기본 자료형 (0) | 2013.02.13 |
변수와 상수 (0) | 2013.02.13 |