[C] C언어 연산자

Posted by 신희준 on July 5, 2018


2018 - 07 - 05 (목)


  • 참고 문헌 : C언어의 정석 [남궁성 지음]

C 언어 일반 산술 변환

int i = 10;
float f = 20.0f

float result = f + (float) i; // 형변환으로 두 피연산자의 타입을 일치
  • 일반 산술 변환 규칙

1 . 두 피연산자의 타입을 같게 일치시킨다. ( 보다 큰 타입으로 일치 )

2 . 피연산자의 타입이 int 보다 작은 타입이면 int로 변환된다.

ex) char + short -> int + int - > int

ex) unsigned short + int -> int + int -> int

  • 단항 연산자

sizeof 연산자

sizeof 피연산자의 '타입의 크기'를 byte단위의 정수로 반환한다." sizeof(피연산자)
printf("%d\n", sizeof(int)); //4 
  • 문자열의 비교

strcmp함수

#include <stdio.h> //<stdio.h>
#include <string.h>

int main(void)


{
	char str[] = "abc";

	printf("\"abc\"==\"abc\" ? %d\n" , "abc"=="abc");

	printf("strcmp(str, \"abc\") ? %d\n" , strcmp(str, "abc"));

	return 0;

}
// 출력 결과
//"abc"=="abc" ? 1
//strcmp(str, "abc") ? 0
  • “abc” == “abc” -> 1 (참)
  • strcmp(“abc”, str) -> 0 (참)

  • 조건 연산자
result = (x>y)? x:y;
//x 가 y 보다 클 경우 result = x , 아닐 경우 result = y

if(x>y){
    result = x;
}else{
    result = y;
}

// 위 조건식과 동일한 결과를 낳는다
  • 콤마 연산자
#include <stdio.h> //<stdio.h>
#include <string.h>

int main(void)


{

	int i =0, j= 0;

	int result =0;

	result = i = 3, i ++ , j ++;

	printf("i=%d , j=%d, result = %d\n", i, j, result);

	result = (i = 3, i ++, j ++);
	printf("i = $d, j = $d, result = %d\n", i, j , result);

	return 0;
}

//결과
//i=4 , j=1, result = 3
//i = $d, j = $d, result = 4