728x90
1. 산술연산자
연산자의 종류
구분 | 연산자 | 기능 |
이항연산자 | +,-,*,/ | 더하기, 빼기, 곱하기, 나누기 |
% | 나눗셈의 나머지 | |
단항연산자 | - | 부호의 반전 |
++ | 1증가 | |
-- | 1감소 |
예제)
#include <stdio.h>
void main()
{
int x,y,z;
x = 10;
y = 3;
z = -y;
printf("z = %d\n",z); //z = -3
printf("x+y = %d\n",x+y); //x+y = 13
printf("x/y = %d\n",x/y); // x/y = 3
//%를 연산을 사용하기 위해 % 두개를 사용한다.
printf("x%%y = %d\n",x%y); // x%y = 1
printf("y%%x = %d\n",y%x); //y%x = 3
int a,b;
a = ++x*x--; //1. ++x = 10-> 11, 2. ++x*x = 11*10 = 110, x-- = 11 -> 10
b = x*10; // 10*10 = 100
printf("a = %d, b=%d, x=%d",a,b,x); // a =110, b=100, x=10
}
2. 관계연산자
연산자의 종류
연산자 | 기능 |
== | 동일여부 비교 |
!= | 다른지 비교 |
>, >=, <. <= | 대소관계를 비교 |
예제)
#include <stdio.h>
void main()
{
int a=4, b,c,d;
b = a >2;
printf("b=%d\n",b); // b=1 (true)
c = a<2;
printf("c=%d\n",c); //c = 0(false)
d = a ==4;
printf("d=%d\n",d); // d = 1(true)
}
3. 논리연산자
연산자의 종류
연산자 | 기능 |
&& | 논리곱(AND) : 양쪽 모두 참일때만 참 |
|| | 논리합(OR) : 양쪽 중 하나라도 참이면 참 |
! | 논리부정(NOT) : 오른쪽이 참이면 거짓, 거짓이면 참 |
예제)
#include <stdio.h>
void main()
{
int a = 4, b=7, c,d,e;
c = a>2 && b<=7;
printf("c=%d\n",c); //c = 1 -> 양쪽 모두 참
d = a<2 || b <=7;
printf("d=%d\n",d); // d = 1 -> 왼쪽은 거짓, 오른쪽은 참
e = !a;
printf("e=%d\n",e); // e=0 -> a가 참이므로 a의 반대는 거짓
}
4. 대입연산자
연산자의 종류
연산자 | 예시 | 기능 |
= | a=5 | a에 5를 대입 |
+= | a+=5 | a에 5를 더한 후 결과값을 a에 대입 |
-= | a-=5 | a에 5를 뺀 후 결과값을 a에 대입 |
*= | a*=5 | a에 5를 곱한 후 결과값을 a에 대입 |
/= | a/=5 | a에 5를 나눈 후 결과값을 a에 대입 |
%= | a%=5 | a에 5를 나눈 후 나머지를 a에 대입 |
&= | a&=5 | a와 5에 대해 bit단위의 AND 연산을 한 후 결과를 a에 대입 |
|= | a|=5 | a와 5에 대해 bit단위의 OR 연산을 한 후 결과를 a에 대입 |
^= | a^=5 | a와 5에 대해 bit단위의 XOR 연산을 한 후 결과를 a에 대입 |
<<= | a<<=5 | a의 값을 5bit 좌측으로 이동 후 결과를 a에 대입 |
>>= | a>>=5 | a의 값을 5bit 우측으로 이동 후 결과를 a에 대입 |
예제)
#include <stdio.h>
void main()
{
int a = 10,b=3,c=1;
a *= (b-1);
b /=2+3;
c +=2;
printf("a=%d, b=%d, c=%d",a,b,c); // a=20, b=0, c=3
}
5. 조건연산자(삼항연산자)
사용방법
(조건)?수식1:수식2;
조건이 참이면 수식1이 실행, 거짓이면 수식2가 실행
예제)
#include <stdio.h>
void main()
{
int a = 10,b;
b = (a >15)?(a+1):(a-1);
printf("b=%d",b); // b=9
}
6. 비트연산자
연산자 | 예시 | 기능 |
& | a&b | (bit AND) 대응되는 두 bit가 모두 1일때 결과가 1 |
| | a|b | (bit OR) 대응되는 두 bit중 하나라도 1이라면 결과가 1 |
^ | a^b | (bit XOR) 대응되는 두 bit가 서로 다를때 결과가 1 |
~ | ~a | (bit NOT) 1은 0으로 0은 1로 변환 |
<< | a<<2 | a값에 대해 2비트 왼쪽으로 이동 |
>> | a>>2 | a값에 대해 2비트 오른쪽으로 이동 |
7. 기타연산자
연산자 | 기능 |
sizeof() | 지정한 자료형, 수식, 변수가 차지하는 기억공간의 크기(byte)를 구함 |
cast | 다른 자료형으로 형변환 |
& | 피연산자의 주소를 나타냄 |
* | 피 연산자의 내용을 가져옴 |
예제)
#include <stdio.h>
void main()
{
//sizeof()
float a=3.14;
printf("int형의 크기는 %d바이트\n",sizeof(int)); // int형의 크기는 4바이트
printf("float형 변수 a의 크기는 %d바이트\n",sizeof(a)); // float형 변수 a의 크기는 4바이트
//형변환(cast)
int b=3, c=4;
double d;
d = (double)b/c;
printf("나눗셈 결과는 %f\n",d); //나눗셈의 결과는 0.750000
}
'C Programming > C' 카테고리의 다른 글
[C] 배열 (1) | 2024.05.02 |
---|---|
[C] 기억 클래스 (1) | 2024.04.26 |
[C] 함수 (0) | 2024.04.26 |
[C] goto문 (0) | 2024.04.26 |
[C] 표준 입출력 함수 (0) | 2024.04.26 |