C

C : 상수와 입력

코딩딩코 2022. 2. 26.

상수 : 항상 변하지 않는 값

#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

댓글