날씨가 춥네요.. 다들 건강챙깁시다!
3.1 데이터와 자료형
우리는 앞서 "정보의 형태" 혹은 "수의 크기" 때문에 자료형을 정해준 뒤 변수를 선언한다고 했어요. 각각에 자료형은 위의 그림처럼 각각의 값의 범위를 가지고 있어요. 여기서 1Byte는 8bit와 크기가 같아요. 앞으로 위의 자료형들을 많이 사용할 텐데 정보가 문장인지 혹은 정수인지 아니면 실수 인지에 따라 다른 자료형을 쓸 것이고 수가 너무 큰지 작은지에 따라 또 다른 자료형을 쓸거에요.
3.2 변수와 상수
우리는 자료형과 변수의 이름을 선언함과 동시에 위의 처럼 상수를 대입해 그 변수의 값을 선언 할 수 있어요. 만약 우리가 "angel" 이라는 변수에 다른 값을 넣고 싶다면 밑에 angel = 1234; 을 적어 변수의 값을 재정의 할 수 있어요.
하지만 "angel" 이라는 변수를 상수처럼 쓰고 싶을수도 있잖아요. 그럴 경우엔 int 앞에 const (한정자,제한자)를 붙여 해당 변수를 상수화 할 수 있어요. 그럴경우엔 위에서 처럼 재정의가 불가해서 완전히 상수로 쓸 수 있어요.
3.3 scanf()함수의 기본적인 사용법
만약 우리가 정수하나를 입력하고 그 정수를 출력하고 싶다면 위에 같이 코드를 작성할 수 있어요. scanf()함수를 보시면 printf()함수와 그 구조가 매우 비슷한 것을 볼 수 있어요. 다른 점은 printf()함수는 변수 이름을 적지만 scanf()함수는 변수의 주소를 적어줘요. 즉 i라는 변수의 주소를 받아 해당 주소에 값을 넣어주는 거죠. 이때 해당 정보의 값이 메모리의 크기를 넘어버리게 될 경우 그 밑에 주소값까지 메모리 값을 건들 수 있기 때문에 보안 위험이 있어요. 그냥 위에 코드를 있는 그대로 쓰고 compile 하게 될 경우 아래와 같이 오류가 뜨게되요.
scanf()함수가 안전하지않다.. 라고 나와요.. 여기서 오류를 없애는 방법은 두가지가 있는데 첫번째는 위에도 나와 있듯이 "_CRT_SECURE_NO_WARNINGS" 문구를 아래와 같이 맨 위에 정의해 주는 거에요.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int i;
scanf("%d", &i);
printf("The value is %d\n", i);
return 0;
}
꼭 맨 위에 정의해줘야되요! 저번에 stdio.h 아래에 정의 했더니 안되더 라구요.. 여러분들은 꼭 맨 위에다가 정의해 주세요!
두번째로는 soultion부분 우클릭 하면 맨 아래 properties 라는 부분이 있어요. 그걸 클릭해 주세요.
그럼 위에 처럼 properties page가 뜨는데요. "C/C++" 클릭하고 "preprocessor"를 클릭해 주세요. 그리고 preprocessor Definitions 옆에 WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)부분에 ;_CRT_SECURE_NO_WARNINGS
를 붙여넣어 주시면 위에처럼 코드 맨 위에 #define _CRT_SECURE_NO_WARNINGS를 붙이지 않아도 오류가 뜨지 않아요.
3.4 간단한 입출력 프로그램 만들기
위의 강의에선 여러 입출력 프로그램을 만들어 봤는데요. 그 중 개념이 가장 많이 들어있는 하나만 설명해 볼게요. 문제는 환률 변환 문제인데요. 먼저 코드를 보고 설명할게요.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
// int won = 0;
// int dollar = 0;
float won = 0;
float dollar = 0;
printf("input won\n");
scanf("%f", &won);
dollar = won *0.00089f;
printf("dollar = %f\n", dollar);
return 0;
}
위에 코드는 원화를 넣어주면 환율에 따라 해당 원화를 달러 값으로 바꿔주는 코드에요. 만약 변수 "won"과 "dollar"가 int 형이 였다면 어떨까요? 원화값이 아주 크면 상관 없겠지만 작은 값일 경우 소수점 부분이 다 없어지겠죠? 그럴 경우 올바른 계산이 나오지 않아요. 따라서 변수의 자료형을 float으로 해준거에요. 자료형이 float일 경우 소수점 아래 부분까지 자세히 표현할 수 있거든요.
출처: https://www.inflearn.com/course/following-c#curriculum
홍정모의 따라하며 배우는 C언어 - 인프런 | 강의
'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., - 강의 소개 | 인프런...
www.inflearn.com
'C언어 공부(홍정모의 따라하며 배우는 C언어)' 카테고리의 다른 글
홍정모의 따라하며 배우는 C언어[3.5~3.8] (2) | 2023.12.05 |
---|---|
홍정모의 따라하며 배우는 C언어 [2.7~2.10] (0) | 2023.11.15 |
홍정모의 따라하며 배우는 C언어 [2.3~2.6] (0) | 2023.11.15 |
홍정모의 따라하며 배우는 C언어[1.8~1.9] (2) | 2023.11.13 |
홍정모의 따라하며 배우는 C언어[0.7~0.10] (2) | 2022.10.03 |