C_연산자

심야·2023년 7월 14일
0

컴퓨터 과학

목록 보기
7/12
post-thumbnail

본 글은 이재범님의 모두의 코드 : 씹어먹는 C 언어 강좌를 정리합니다.

산술 연산자

int a, b, c, d;
	a = b = c = d = 5;
	printf("%d %d %d %d", a, b, c, d);
	return 0;

a = 5;
b = 5;
c = 5;
d = 5;

위 코드와 아래 코드는 같은 의미다.

a = b = c = d = 5;
include <stdio.h>

int main()
{
  int a = 10;
  int b = 3;
 
  printf("a %% d 는 : %d \n", a % b);
  printf("a / b 는 : %f \n", a / b);
  printf("b / a 는 : %f \n", b / a);
  return 0;
 
}

+, -, *, /는 정수, 실수형 데이터 모두 연산이 가능하다.
%는 나머지를 구하는 연산자며 오직 정수형 데이터만 연산이 가능하다.
문자열 %를 출력하려면 %%를 입력한다.
정수와 정수의 계산은 정수형 데이터가 출력되지 실수형 데이터가 출력되지 않는다.
따라서 %f형식을 사용한 아래의 코드는 잘못된 코드다.

#include <stdio.h>

int main()
{
  int a = 10;
  int b = 3;
  
  printf("a / b 는 : %f \n", a / b);
  printf("b / a 는 : %f \n", b / a);
  return 0;
 
}

만약 %f형식을 사용하고 싶다면 아래의 코드를 사용해야 한다.

#include <stdio.h>

int main()
{
  int a = 10;
  double b = 3;
  
  printf("a / b 는 : %f \n", a / b);
  printf("a / b 는 : %f \n", a / b);
  printf("b / a 는 : %f \n", b / a);
  return 0;
 
}

나머지 연산은 정수형과 정수형의 계산만 가능하다.

#include <stdio.h>

int main()
{
  int a = 10;
  double b = 3;
 
  printf("a %% d 는 : %d \n", a % b);
  return 0;
}

아래의 코드를 보면 a는 int형, b는 double형을 사용하지만 연산이 된다.
컴파일러가 산술 변환이라는 과정을 거쳐 해당 코드가 실행되기 때문이다.
산술변환이란 어떠한 자료형이 다른 두 변수를 연산할 때 숫자의 범위가 더 큰 자료형으로 자료형이 바뀌는 걸 의미한다.
따라서 아래의 코드는 double형과 int형을 나누면 doubl의 범위가 더 커 에러 없이 double형태로 출력된다.

#include <stdio.h>

int main()
{
  int a = 10;
  double b = 3;
  
  printf("a / b 는 : %f \n", a / b);
  printf("b / a 는 : %f \n", b / a);
  return 0;
 
}

a + b%d형식으로 출력하면 에러가 발생한다.
실수와 정수 연산 출력 방식을 실수형 %f 가 아닌 정수형 %d로 출력했기 때문이다.

#include <stdio.h>

int main()
{
  int a = 10;
  double b = 3;
 
  printf("a + b 는 : %d \n", a + b);
  return 0;
 
}

증감 연산자

#include <stdio.h>

int main()
{
  #include <stdio.h>
  int a = 1, b=1,c=1,d=1;
  a = a + 1;
  printf("a : %d \n", a);
  b += 1;
  printf("b : %d \n", b);
  ++c;
  printf("c : %d \n", c);
  d++;
  printf("d : %d \n", d);
 
  return 0;
}

++연산자를 증감 연산자라 한다.

++c : 전위형(prefix)이라 부른다, 먼저 1을 더한 후 결과를 리턴한다.
d++ : 후위형(postfix)이라 부른다, 결과를 리턴 후 1을 더한다.

#include <stdio.h>

int main()
{
  int a = 1;
  
  printf("++a : %d \n", ++a); // 2
  
  a = 1;
  
  printf("a++ %d \n", a++); // 1
  printf("a : %d\n", a); // 2
  
  return 0;
}

printf("++a : %d \n", ++a);a에 1을 더한 후 2 를 리턴한다.
printf("a++ %d \n", a++);a를 출력 후 1 을 더한다.
printf("a : %d\n", a);는 1이 더해졌기 때문에 2가 출력된다.

profile
하루하루 성실하게, 인생 전체는 되는대로.

0개의 댓글

관련 채용 정보