본문 바로가기

programming study/C

[나도코딩]C 프로그래밍 - 입문부터 게임 개발까지 (1)(2020.12.25)

본 내용은 해당 강의 토대로 작성


교육환경

Visual Studio Code

Hello World

#include <stdio.h> //standard input - output

int main() {
printf("Hello Word \n");
return 0;
}

#include <stdio.h> : 표준 입출력

정수와 변수

정수 : -2, -1, 0, 1

실수 : 더 큰 범위의 수. -2.0 , 1.3 과 같이 소수점이 붙은 것

변수 : 변하는 수. 상수의 반대

#include <stdio.h>
int main(void)
{
int age = 12;     //변수 선언시, 정수 자료형(int) 선언
printf("%d\n", age);  
age = 13;        //정수형을 선언했으므로 int를 안 붙여도 됨
printf("%d\n", age);
return 0;
}

int : 정수 자료형

%d : 정수형 값을 출력할 때 넣는다.

\n : 줄바꿈

주석

소스코드 안에서 메모나 코드의 설명을 하고 싶을 때, 아래의 기호를 쓴다.

/* 주석 내용 */

// 주석 내용

실수형 변수

#include <stdio.h>
int main(void)
{
float f = 46.5f;				
printf("%.2f\n", f);  //46.50 출력
double d = 4.428;
printf("%.2lf\n", d); //4.43 출력
return 0;
}

float : 실수 자료형

%f : 실수형 값을 출력할 때 넣는다. 소수점 아래 6자리까지 출력

​ -'%f.2' : 소수점 셋 째 자리에서 반올림하여 둘 째자리까지 표현

double : 실수 자료형, 표현하는 범위가 float보다 큼

상수

상수는 변하지 않는 수이다. 한 번 정하면 더 이상 바꿀 수 없다. C에서는 보통 대문자로 처리한다.

#include <stdio.h>
int main(void)
{
const int YEAR = 1993;
printf("태어난년도 : %d\n", YEAR); //1993 출력
return 0;
}

const : 상수라는 의미

위 명령어로 인해서, YEAR 는 상수이다. 만약, YEAR에 다른 값을 넣으려는 시도를 하면, 아래처럼 나온다.

스크린샷 2020-12-25 오후 10.26.00

printf

C의 출력 명령어인 printf는 아래와 같은 특징이 있다.

#include <stdio.h>
int main(void)
{
int add = 3 + 7;    //10
printf("3 + 7 =%d\n", add); //10출력 
printf("%d x %d = %d\n", 30, 79, 30 * 79); //2370 출력
return 0;
}

연산이 포함된 변수를 printf로 출력하면 연산되어 나온다. printf에 연산을 바로 포함해서 출력할 수도 있고 맨 아래의 경우 처럼%d 를 이용해서 여러가지의 값을 동시 출력할 수도 있다.

scanf

scanf는 키보드의 입력을 받아 저장한다.

#include <stdio.h>
int main(void)
{
int one, two, three;               //세개의 정수
printf("3개의 정수를  입력하세요 : ");   //안내 문구
scanf("%d %d %d", &one, &two, &three); //세 개의 정수를 입력 받아 저장
printf("첫번째 값 : %d\n", one);         // 각각 출력
printf("두번째 값 : %d\n", two);
printf("세번째 값 : %d\n", three);
return 0; 
}

& : 각 변수가 정의 된 곳에 값을 입력 받음

문자열

문자는 한글자이고 문자열은 한 글자 이상의 여러글자이다. 문자의 선언은 아래와 같다.

#include <stdio.h>
int main(void)
{
char c = 'A';
printf("%c\n", c) //A 출력
return 0;
}

char : 문자 자료형

%c : 문자열을 받음

#include <stdio.h>
int main(void)
{
char str[256];                //str에 256만큼 빈 공간 만듦
scanf("%s", str, sizeof(str)); // 크기를 초과히지 않도록 함
printf("%s\n", str);	        //입력 문자열이 그대로 출력
return 0; 
}

위의 명령어에서 256만큼의 빈 공간이 만들어진 strscanf_s로 데이터를 넣기 전에 그 크기를 넘지 않도록 sizeof로 그 이하의 문자열만 받는다고 명시해준다.

느낀점

세팅하는데 한참을 걸렸다… C는 Python보다 문법에 훨씬 더 엄격한 것 같고 Mac이나 Windows의 환경에 따라서 명령어의 차이가 있다. 좀 걱정되네… 아직까지는 할만하다. 그 악명높은 투포인터가 나오기 전이니…