728x90
3.1 데이터와 자료형
- 프로그래밍 = 데이터를 다루는 일
- 대표적 자료형 분류 2가지
- 정수 자료형 : char (문자. 컴퓨터는 내부적으로 문자를 정수로 처리), int (정수)
- 실수 자료형 : float (실수)
- 각 자료형마다 크기가 다르므로 상황에 따라 자료형을 골라 필요한 만큼의 크기를 사용 가능
3.2 변수와 상수
- 변수 (Variable) : 변하는 값
- 상수 (Constant) : 변하지 않는 값
int angel = 1004;
자료형 변수 리터럴 상수 (literal constant). 문자 그대로의 의미를 갖고 값이 변할 수 없음
const int angel = 1004;
한정자 기호적 상수 (Symbolic constant)
- const는 한정자, 제한자(Qualifier). 변수의 초기화 이후에 이 변수가 변경되지 않는다는 것을 의미
- 리터럴 상수는 숫자로 표시하는 상수, 기호적 상수는 기호로 표시하는 상수
3.3 scanf() 함수의 기본적인 사용법
- scanf == scan formatted. 입력을 어떻게 받을지 format
* scanf 함수는 Microsoft에서 지정한 잘못 사용하면 위험한 함수 -> 그냥 사용하려고 하면 아래와 같은 오류 발생
* scanf 사용 경고가 뜨는 이유 : scanf가 받을 수 있는 입력 데이터의 크기가 있는데 사용자가 고의로 또는 실수로 해당 데이터 크기를 초과하는 값을 입력할 경우 초과된 데이터가 다른 메모리를 침범해 프로그램에 오류가 발생 (오버플로우)할 수 있고, 이는 해킹시 사용될 수도 있기 때문에 이를 막기 위해 scanf_s로 일정 크기까지만 입력받는 함수를 사용하라고 권장하는 것.
* Visual Studio Code 에서 gcc 컴파일러 사용시는 그냥 scanf 사용 가능
#define _CRT_SECURE_NO_WARNINGS // scanf error 경고 해제하는 방법 1. 특정 소스 파일에만 경고 해제
// 이 문장은 반드시 코드의 맨 윗줄에 있어야 함
#pragma warning (disable:4996) // scanf error 경고 해제하는 방법 2. 파일 내에서 경고 해제
#include <stdio.h>
int main()
{
int i = 0;
scanf("%d", &i); // & : ampersand. 변수의 주소를 scanf함수에 넘겨줌
// scanf는 변수의 주소값을 받아서 값을 변경함
printf("Value is %d\n", i);
return 0;
}
- 경고 해제하는 방법 3 (Preprocessor 매크로를 사용하여 라이브러리에서 사용 되는 사용 중단 경고의 특정 클래스를 해제) : 프로젝트 우클릭 -> Properties -> C/C++ -> Preprocessor
- 첫번째 줄에 ;_CRT_SECURE_NO_WARNINGS 입력 혹은 edit 창을 열고 아래와 같이 입력
* scnaf 함수가 &를 사용해 변수의 주소값을 받는 이유 : C 문법에선 함수의 출력이 하나밖에 안되고, scanf 함수는 여러개의 입력을 받고 값을 바꿔야 하는데, 함수가 여러개의 출력이 안되므로 call by reference를 통해 변수의 값을 바꿔주는 것
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 3.5 정수와 실수 ~ 3.6 정수의 오버플로우 (0) | 2021.08.07 |
---|---|
[홍정모의 따라하며 배우는 C언어] 3.4 간단한 입출력 프로그램 만들기 (0) | 2021.08.02 |
[홍정모의 따라하며 배우는 C언어] 2.11 문법 오류와 문맥 오류 ~ 2.12 읽기 좋은 코드를 만드는 요령 (0) | 2021.07.23 |
[홍정모의 따라하며 배우는 C언어] 2.10 디버거 사용법 (0) | 2021.07.19 |
[홍정모의 따라하며 배우는 C언어] 2.7 주석 다는 방법 ~ 2.9 함수 만들기 (0) | 2021.07.17 |