따라 배우는 C언어 : 6
🙇♀️6
🪐대입 연산자와 몇 가지 용어들
- 연산자 : operator
- 피연산자 : operand
- Data object(object) : int i;같은거
- L-value(objcect locator value) : i = 1024; 에서 i는 L-value
- R-value(value of expression) : i = 1024; 에서 1024는 R-value
L-value : 메모리를 차지하고 있는 특정 데이터객체(개체) R-value : 수정 가능한 L-value에게 대입될 수 는 있지만 자기 자신은 L-value가 될 수 없는 것들
const int TWO = 2;
int a;
int b;
int c;
a = 42;
b = a;
c = TWO * (a + b);
- a,b,c는 수정 가능한 L-value
- TWO는 수정 불가능한 L-value (여기서 = 는 대입이 아니라 초기화)
- 42는 R-value
- (a + b)는 R-value (프로그램이 계산하는 임시 값, 끝나면 사라짐)
🪐더하기, 빼기, 부호 연산자들
int a, b;
a = -7;
b = -a;
b = +a; // + dose nothing
1.0f + 2; // float
-, + 는 부호 연산자 이다.
- 3 - 2 : 이항 연산자 (binary operator)
- -16 : 단항 연산자 (Unary operator)
🪐곱하기 연산자
복리 계산기
#include <stdio.h>
int main()
{
double seed_money, target_monney, annual_interest;
printf("Input seed money : ");
scanf("%lf", &seed_money);
printf("Input target money : ");
scanf("%lf", &target_monney);
printf("Input annual interest (%%) : ");
scanf("%lf", &annual_interest);
double fund = seed_money;
int year_count = 0;
while (fund < target_monney)
{
fund += fund * (annual_interest * 0.01);
printf("%lf\n", fund);
year_count++;
}
printf("It takes %d years\n", year_count);
return 0;
}
🪐나머지 연산자
초 시간을 입력 받고 시, 분, 초로 표현하는 프로그램
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int seconds = 0, minutes = 0, hours = 0;
printf("Input seconds : ");
scanf("%d", &seconds);
// TODO: seconds -> hours, minutes, seconds
hours = seconds / 3600;
minutes = seconds % 3600 / 60;
seconds = seconds % 3600 % 60;
// print result
printf("%d hours, %d minutes, %d seconds\n", hours, minutes, seconds);
printf("Good Bye\n");
}
- 음수의 나누기
- 11 / 5 = 2
- 11 % 5 = 1
- 11 / -5 = -2
- 11 % -5 = 1
- -11 / -5 = 2
- -11 % -5 = -1
- -11 / 5 = -2
- -11 % 5 = -1
🪐자료형 변환
- promotions
- short를 int형에 넣는 것 처럼 작은걸 큰거에 넣는 것
- demotion
- int를 short형에 넣는 것 처럼 큰걸 작은거에 넣는 것
- ranking
- 실수가 정수형보다 랭킹이 높다
- 실수와 정수가 같이 계산을 하면 정수가 실수로 변환되어 계산된다
🪐함수의 인수와 매개변수
Arguments : 인수 Parameters : 매개변수