본 글은 이재범님의 모두의 코드 : 씹어먹는 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가 출력된다.