상수 : 항상 변하지 않는 값
#define PI 3.14
대문자로 선언
리터럴 : 컴퓨터에 이미 정의되어 있는 상수
정수 = int
실수 = double
형 변환
업캐스팅
문자 -> 정수 -> 실수
값이 작은 범위에서 큰 범위로의 형 변환
다운캐스팅
실수 -> 정수 -> 문자
값이 큰 범위에서 작은 범위로의 형 변환
MAX 라는 상수를 선언하고 (무조건 대문자로) 100이라는 값을 대입시켰습니다.
이때는 대입연산자(=) 세미콜론(;)을 사용하지 않습니다.
그리고 변수를 선언할때 const를 사용해도 상수가 선언 가능하지만 보통 #define으로 많이 선언합니다.
메모리 낭비가 덜 하기 때문입니다.
상수의 값은 절대 수정 할 수 없습니다.
출력함수에 max min const_PI의 값이 잘 들어갔네요.
그리고 scanf_s로 입력받습니다.
내가 입력할 값이 정수이기때문에 %d를 사용하고 입력한 값이 어디에 넣을지 뒤에 입력하면 됩니다.
이때는 주소를 알려줘야 하기때문에 &를 붙여줍니다.
내가 3을 입력하면 3이라는 값이 r이라는 변수에 들어가게 됩니다.
scanf_s를 연달아서 사용도 가능합니다. 여기서 중요한 것은 rewind(stdin) 이라는 것인데
이건 입력한 값이 버퍼에 들어가는데 그 버퍼를 비워주는 역할을 하게 됩니다.
입력 받을때 스페이스바로 나눠서 입력을 처리 하는데
지금은 %d에 하나만 입력 받아야 하는데 10 20 30 이렇게 실수를 하게 되면 10은 잘 들어가지만
20 30 은 버퍼에 남아있다가 나중에 어떤 변수에 들어가서 내가 의도한 것과는 다르게 되기때문에
이것을 방지하고자 20 30이 들어 있는 버퍼를 비워주는 역할을 rewind(stdin)이 해줍니다.
콘솔창을 보시면 10 20 30 을 입력했지만 10은 a에 잘 들어가고 20 30도 입력해서 버퍼에 들어갔지만
버퍼를 비워줌으로써 입력 안 한 것처럼 되었습니다.
그 다음 10 10을 입력 하니 b에 10 c에 10이 들어가 세 수를 다 합하니 30이 나온 것이죠.
만약 rewind(stdin)을 사용 안 했다면 10 20 30에서 이미 결과가 60으로 나와서 끝이 났을 겁니다.
'C' 카테고리의 다른 글
C : switch (0) | 2022.02.26 |
---|---|
C : if (0) | 2022.02.26 |
C : 연산자 (0) | 2022.02.26 |
C : 변수의 선언과 출력하기 (0) | 2022.02.26 |
C : 들어가기 앞서서.. (0) | 2022.02.26 |
댓글