대입(Assignment) 연산자
오른쪽에 있는 값이나 수식을 계산하여 왼쪽에 있는 변수에 넣어주는 연산자로 = += -= *= /= %= 등이 있다. #include main() { int x, y=20, z=5; x = 30; x = y; x = y + z; printf("x=%d, y=%d, z=%dn", x, y, z); x += y = z; printf("x=%d, y=%d, z=%dn", x, y, z); x = y += z; printf("x=%d, y=%d, z=%dn", x, y, z); x += y - z; printf("x=%d, y=%d, z=%dn", x, y, z); x += y; printf("x=%d, y=%d, z=%dn", x, y, z); x %= 3; printf("x=%d, y=%d, z=%dn", x, y, z); x /= y+2; printf("x=%d, y=%d, z=%dn", x, y, z); } |
쉬프트연산자
데이터의 비트값을 이동시킨다. 값을 이진수로 바꾸어서 비트값을 이동시켜 연산한다.
Ex) int a=5,b; b=a<<2; a의 값을 이진수로 바꾸어 보면 00000101 이 되는데 이 값을 왼쪽으로 2비트 이동시키면 00010100이 된다. 이를 다시 십진수로 바꾸어 보면 20이란 결과 값이 나온다. 결국 b에는 20의 값이 저장된다. 예제) #include void main(){ int num=7,re1,re2; re1=num<<2; re2=num>>2; printf("결과=%dn",re1); printf("결과=%dn",re2); } |
삼항연산자(조건연산자)
형식
피연산자1의 조건식이 참이면 피연사자2의 결과값을 갖고 거짓이면 피연산자3의 결과값을 갖는다. 예제) #include main(){ int a,b,max; scanf("%d %d",&a,&b); max=(a>b)?a:b; /* a가 b보다 크면 a값을 아니면 b값을 결과값으로 갖게되어 max변수에 대입한다. */ printf("max=%d",max); } |
cast 연산자
자료형을 강제적으로 변화시키는 연산자 형식
예제) #include main(){ int a,b; printf("임의의 두 정수를 입력하세요!n"); scanf("%d %d",&a,&b); printf(" ****** 연산결과 ********n"); printf(" 덧셈= %dn",a+b); printf(" 뺄셈= %dn",a-b); printf(" 곱셈= %dn",a*b); printf(" 나눗셈= %.2fn",(float)a/b); } |
콤머연산자
하나의 명령문만이 허용하는 자리에 블록을 사용하여 여러 개의 명령문을 사용할 수 있는데 콤머연산자 역시 그것과 비슷한 역할을 한다. 하나의 표현식만이 허용되는 자리에 두 개 이상의 표현식을 콤머로 구분해서 나열할 수 있다. 성격이 비슷한 것끼리 늘어놓는 경우 사용한다 ex) main(){ int a=10,b=20, c=40; printf("very n"),printf("good!!!n"); printf("%d %d %d",a,b,c); } |
sizeof 연산자
괄호안의 인수의 전체 크기를 바이트 단위로 나타낸다. 형식
ex) #include main(){ int a=10; printf("byte size= %dn",sizeof(a)); printf("byte size= %dn",sizeof(int)); printf("byte size= %dn",sizeof(char)); printf("byte size= %dn",sizeof(float)); } |