지난 편 문제 풀이
연산자의 우선순위를 먼저 파악하는 게 좋습니다.
증감 연산자
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
printf("a = %d \n",a); //10
printf("a++ = %d \n",a++); //10 /사용 후 증가
a = 11
printf("++b = %d \n",++b); //21 /증가 후 사용 b = 21
printf("a = %d b = %d\n", a, b); //11 21
return 0;
}
증감 연산자는
변수의 값이 1+ 혹은 1- 되는 연산자입니다.
변수의 값이 변경된다는 것에 중점을 둡시다.
캐스팅 연산자
#include <stdio.h>
int main()
{
int a = 10;
float b = 3.14;
double c = 99.9;
printf("a + b = %d\n",a + b);
printf("b + c = %c\n",b + c);
printf("a + b = %d\n",a + (int)b);
printf("b + c = %c\n",(char)(b + c));
printf("b + c = %c\n",(char)b + (char)c);
printf("a = %d b = %f c = %f\n",a ,b ,c);
return 0;
}
캐스팅 연산자는 일시적 형(자료형) 변환을 시켜줍니다.
그래서 형이 다른 변수와의 연산을 할 때
캐스팅을 하지 않고 하면 원하지 않는 값이 뜨게 됩니다.
(char)(b + c) 계산에서
b와 c를 더한 후 103.04에 대한 아스키코드 값이 없기 때문에 소수점 자리는 버리고 103의 아스키코드값 g가 출력됩니다.
(char)b + (char)c 여기에서는
b의 값 3의 c의 값 99를 더한 102에 대한 아스키코드값 f 가 출력됩니다.
이런 형태의 특징을 확인하시기 바랍니다.
sizeof 연산자
#include <stdio.h>
int main()
{
int a = 0;
int b[5];
printf("int : %d\n",sizeof(int));
printf("char : %d\n",sizeof(char));
printf("a : %d\n",sizeof(a));
printf("b : %d\n",sizeof(b));
return 0;
}
sizeof는 괄호가 붙어있지만 연산자입니다
메모리에 할당된 크기를 구할 때 사용합니다.
int는 4바이트
char는 1바이트입니다
a는 int형 변수로서 4바이트 할당되어 있습니다.
b는 int형 5개의 공간이 만들어져 있습니다.
문제
#include <stdio.h>
int main()
{
int a = 3;
int b = 2;
int c = 1;
printf("%d\n",-(--a));
printf("%d\n",b-(--c));
printf("%d\n",a++ - b);
printf("%d\n",a++ / ++b * --c);
printf("%d\n",++c / b++ * --a);
printf("a = %d b = %d c = %d\n",a ,b ,c);
return 0;
}
#include <stdio.h>
int main()
{
int num1=0;
int num2=0;
num1 = sizeof(num2);
num2 = sizeof(char);
printf("num1 = %d\n",num1++);
printf("num2 = %d\n",num2--);
printf("num1 = %d\n",num1 *= num2);
num2 = --num1 && num2;
printf("num2 = %d\n",num2);
printf("size = %d\n",sizeof(num1) * 4);
printf("True or False = %d\n",num1 > num2);
printf("True or False = %d\n",num1 == !num2);
printf("True or False = %d\n",num1 != num2 || num2);
return 0;
}
'컴퓨터 프로그래밍 > C' 카테고리의 다른 글
C언어 제어문 (while / do while / for) (0) | 2019.07.18 |
---|---|
C언어 제어문 (if / if else / else if) (0) | 2019.07.18 |
C언어 관계 연산자 / 논리 연산자 / 대입 연산자 (0) | 2019.07.18 |
C언어 연산자 우선순위 (0) | 2019.07.18 |
C언어 표준 입력 함수 get / scanf (0) | 2019.07.18 |