Creative Code

C언어-(3)타입캐스팅, 연산자 본문

코딩 study/C

C언어-(3)타입캐스팅, 연산자

빛하루 2023. 8. 3. 22:40

※타입 캐스팅

#include <stdio.h>

int main(void)
{
	int a = (int)10.7; // --> a=10 저장
    double d = (double)5/(double)3; // -> d = 1.6666666 저장
    //주로 임시로 타입을 변환해서 저장할 때 사용
    return 0;
}

※ 복합 대입 연산자

#include <stdio.h>

int main(void)
{
	int a = 10;
    a += 20; // a = a+20
    a -= 10; // a = a-10;
    a *= 10; // a = a*10;
    a /= 5; // a = a/5;
    return 0;
}

※삼항연산자 ?

#include <stdio.h>

int main(void) {
	int a = (30 > 20)? 5 : 2; // (30>20)의 조건식이 참이면 5, 거짓이면 2를 a에 대입
    printf("%d",a);
    int a = (30 < 20)? 4 : (20<15)? 3 : 2; 
    // (30<20)의 조건식이 참이면 4, 거짓일때 (20<15)의 조건식이 참이면 3 거짓이면 2를 a에 대입 즉 a=2를 대입
    return 0;
}

※비트연산자

#include <stdio.h>

int main(void) {
	int a = 5;
	int b = 12;
	printf("a & b : %d \n", a & b); 
	printf("a | b : %d \n", a | b);
	printf("a ^ b : %d \n", a ^ b);
	printf("~a : %d \n", ~a);
	printf("a << 1 : %d \n", a << 1);
	printf("a >> 2 : %d \n", a >> 1);
	return 0;
}

※ 연산자 우선순위

//연산자 우선순위

//1. x++(증가연산자), x--(감소 연산자), ()(함수 호출), [](배열 첨자), .(구조체,공용체 멤버 접근),
     -> (포인터로 구조체/공용체 멤버 접근)
//2. ++x (증가연산자), --x(감소연산자), !(논리연산자), ~(비트 논리연산자), (type)(타입캐스팅),
	*(포인터 역참조), &(주소), sizeof(자료형크기)
//3. *(곱셈), /(나눗셈), %(나머지)
//4. +(덧셈),-(뺄셈)
//5. <<(비트 왼쪽 시프트), >>(비트 오른쪽 시프트)
//6. <(작다), <=(작거나 같다), >(크다), >=(크거나 같다)
//7. ==(같다), !=(같지 않다)
//8. &(비트 and)
//9. ^(비트 XOR)
//10. |(비트 OR)
//11. &&(논리연산자 AND)
//12. ||(논리연산자 OR)
//13. (조건식)? ():() (삼항연산자)
//14. =(대입),+=(덧셈후 대입),-=(뺄셈 후 대입),*=(곱셈 후 대입),/=(나눗셈 후 대입), %=(나머지 연산 후 대입)
      <<=(비트 왼쪽 시프트 후 대입), >>=(비트 오른쪽 시프트 후 대입), &=(비트 AND연산 후 대입),
      ^=(비트 XOR연산 후 대입), |= (비트 OR 연산 후 대입)
//15. ,(콤마 연산자)

'코딩 study > C' 카테고리의 다른 글

C언어-(5)  (0) 2023.09.13
C언어-(4) if문 , switch문  (0) 2023.08.04
C언어-(2)sizeof, scanf,연산자  (0) 2023.08.02
C언어 - (1) 출력, 변수  (0) 2023.08.02