C언어 연산자.
C연어 연산자는 C언어의 아주 기초적인 내용입니다.
아주 기초적이기 때문에 소홀히 하기 쉬운 부분이기도 합니다.
C언어에서 연산자가 상당히 많은 중요한 역할을 하고 있다 할 수 있지만, 주목받지 못하는 이유는 이해 하기가 너무 쉽고, 소프트웨어 관련 프로그램에서는 문법보다 많은 비중을 차지하지 못하기 때문입니다.
그럼에도 연산자를 알아야 하는 이유는, 당연히 C언어 코딩 과정이 게임을 만드든, 뭘 만드든 연산자와 함수를 통해서 이루어지기 때문이죠.
특히, 비트연산자는 하드웨어와 관련된 신호를 처리할 때 도움이 되는 개념으로 꼭 알아야 합니다.
※ 연산자 종류
분류 |
연산자 |
대입 연산자 |
= |
산술 연산자 |
+, -, *, /, % |
복합 대입 연산자 |
+=, -=, *=, /=, %= |
증감 연산자 |
++, -- |
관계 연산자 |
>, <, ==, !=, >=, <= |
논리 연산자 |
&&, ||, ! |
조건 연산자 | ?: |
비트 논리 연산자 | &, |, ^, ~ |
비트 이동 연산자 | >>, << |
◎. 대입 연산자는 오른쪽 값을 왼쪽으로 넣는것을 말합니다. 관계 연산자인 ==과 대입 연산자는 = 헷갈릴 수 있으므로 주의할것.
◎. 복합 대입 연산자는 왼쪽값에 오른쪽 값을 산술후 대입하는걸 말합니다. a+=1; 은, a에 1을 먼저 더하고(산술) 후에 값을 다시 a에 대입합니다
◎. 증감 연산자에 선 연산 후 증감, 선 증감 후 연산으로 나뉩니다. ++a 와 a++의 차이점을 알아두세요!
◎. 관계 연산자는 2개의 값을 비교할떄 사용합니다. 결과값은 1 또는 0 즉 참 또는 거짓으로 반환됩니다.
◎. 논리 연산자는 참과 거짓을 연산자에 맞춰서 연산하여 결과값을 1 또는 0 즉, 참 또는 거짓을 반환합니다.
◎. 조건 연산자는 관계연산자로 나온 결과값에 따라 반환값을 달리합니다.
◎. 대입 연산자
1 2 3 4 5 6 7 8 | #include<stdio.h> void main() { int a; a = 1; // 대입 연산자 } | cs |
오른쪽 값을 왼쪽으로, 자료형에서 자동형변환이 일어날 때도 오른쪽에서 왼쪽순이었다.
◎. 복합 대입 연산자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> void main() { int a; a = 0; //대입 연산자 //복합 대입 연산자 a += 1; //( a = a+1) a -= 1; //( a = a-1) a /= 1; //( a = a/1) a *= 1; //( a = a*1) } | cs |
오른쪽값과 왼쪽값을 연산해서 왼쪽에 넣는다.
◎. 증감 연산자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<stdio.h> void main() { int a; int b = 0; int c = 0; a = 0; //대입 연산자 //증감 연산자 a++; // a = a+1 a--; // a = a-1 //앞뒤의 차이 a = 1; b = ++a; // 증감 연산자가 앞에 있다면 선 연산후 대입 즉 a에 +1이 되며 b에는 2값이 들어간다. c = a++; // 증감 연산자가 뒤에 있다면 선 대입후 연산 즉 c에는 2값이 들어가며 a는 3이 된다. } | cs |
◎. 관계 연산자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<stdio.h> void main() { int a = 1; int b = 0; //관계 연산자 // >, <, ==, !=, >=, <= //참이면 1반환 거짓이면 0을 반환한다. int result =0; result = a<b ; //a가 b보다 작다. 거짓 result값 0 result = a>b ; //a가 b보다 크다. 참 result값 1 result = a==b ; //a와 b가 같다. 거짓 result값 0 result = a!=b ; //a와 b가 같지않다.참 result값 1 result = a>=b ; //a가 b보다 크거나 같다. 참 result값 1 result = a<=b ; //a가 b보다 작거나 같다. 거짓 result값 0 } | cs |
◎. 논리 연산자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include<stdio.h> void main() { int a = 1; int b = 0; //논리 연산자 //&&, ||, ! //논리 연산자는 참과 거짓을 연산자에 맞춰서 연산하여 결과값을 1 또는 0 즉, 참 또는 거짓을 반환합니다. int result = 0; //&&연산자, And 연산자 result = a == b && a>b; // a 와 b가 같으면서 a가 b보다 크다 / 거짓 result값 0 result = a != b && a>b; // a 와 b가 같지않으면서 a가 b보다 크다 / 참 result값 1 //||연산자, Or 연산자 result = a == b || a>b; // a 와 b가 같거나 a가 b보다 크다 / 참 result값 1 //a==b는 거짓이여도. a>b가 참이기에 or연산자는 참을 반환한다. result = a == b || a<b; // a 와 b가 같거나 a가 b보다 작다 / 거짓 result값 10 //a==b는 거짓ㅣ며. a<b도 거짓이기에 or연산자는 거짓을 반환한다. //!연산자, Not 연산자 result = !(a>b); // a가 b보다 크다 의 값은 참이나, !가 있기에 반대값인 거짓을 반환한다. result값 0 result = !(a<b); // a가 b보다 작다 의 값은 거짓이나, !가 있기에 반대값인 참을 반환한다. result값 1 } | cs |
◎. 조건 연산자
실제로 if문때문에 잘 쓰이지 않는.. 불쌍한 연산자..
알맞게 사용한다면 코드가 간결해지고, 난무한다면 가독성이 떨어진다는 전설의 연산자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include<stdio.h> void main() { int a = 1; int b = 0; //조건 연산자 // ? : // 관계연산자로 나온 결과값에 따라 반환값을 달리합니다. // 사용법 // (조건)? (참):(거짓); // ?앞에있는 조건의 반환값에 따라 (참) 또는 (거짓)을 실행시키거나 반환한다. // 예제 int result = 0; result = (a>b)? 10 : -10; //a>b의 값이 참이므로 :기준 왼쪽 값을 대입하여, result값은 10이 된다. result = (a==b)? 10 : -10; //a==b의 값이 거짓이므로 :기준 오른쪽 값을 개입하며 result값은 -10이 된다. //또한 이렇게 함수 자체를 넣을수도있습니다. (a<=b)? printf("a<=b는 참입니다") : printf("a<=b는 거짓입니다"); //물론 위의 값은 a<=b가 거짓이므로 : 기준 오른쪽 인 printf("a<=b는 거짓입니다")가 실행되게 됩니다. } | cs |
.◎. 비트 연산자
비트 연산자는 내용이 길어 질수있기 때문에,
다음 포스팅에서 작성하겠습니다.
참고 : http://baeseonha.tistory.com/category/C-programing/C%EC%96%B8%EC%96%B4%20%EA%B8%B0%EC%B4%88
'프로그래밍 > Language' 카테고리의 다른 글
포인터에 대하여 (0) | 2016.02.23 |
---|---|
C언어 연산자에 대하여 - 비트연산 (0) | 2016.02.23 |
상수란 무엇인가? (0) | 2016.02.22 |
변수란 무엇인가? (0) | 2016.02.22 |
#Pragma의 사용법 (0) | 2016.02.22 |