본문 바로가기
프로그래밍/C언어

[C언어] #2. 주석 처리와 신상 정보 프로그램 구현하기

by Crush on Study 2022. 1. 19.
반응형

printf("Welcome, Let's C Language.");  // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다.

 

안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 

이번 글에서는 주석 처리에 대한 소개와 #0,#1에서 다뤘던 내용들을 복습하고자 하는 차원에서 소스코드를 하나 만들어보고자 합니다.

 

Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다.

A. 1) scanf에 대해 배웠습니다.

- 함수가 어떤 값을 출력한다면 반대로 입력을 받을 수 있는 기능도 있을겁니다. 입력을 받는 기능을 하는 명령어가 scanf입니다. 현재는 표준이 scanf_s로 되었고 이는 '버퍼 오버플로우' 라는 현상을 막기 위해 개정되었습니다. 

 

2) 자료형 타입에 대해 배웠습니다.

- int , double, float , unsigned (자료형 타입) 등등에 대해 배웠습니다. 각각의 자료형 타입은 표현할 수 있는 범위와 메모리 크기에서도 각자 다른 값을 갖습니다.

 

 

딱 보고 기억 나는게 없다. 하면 바로 이 전글을 참고하세요. (설마 아직까진 쉬운데 까먹으셨을까??)

https://crush-on-study.tistory.com/207

 

[C언어] #1. 자료형 타입과 scanf 함수에 대하여

printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 자료형 타입에 대한 소개..

crush-on-study.tistory.com

주석 처리 설명을 위한 소스코드

반응형
// 야, 이것도 출력해봐 컴퓨터야 ㅋㅋ
// 아니, 못해? 이걸 출력못해??????????? 

#include <stdio.h>

int main()
{   
    int tall;

	printf("How much your tall? : ");
    scanf_s("%d",&tall);

    printf("Your tall is %d",tall);

	return 0;
}

이전 시간에 짜놨던 소스코드에서 // 라는 걸 이용해서  제가 이상한 문구를 적었습니다. 하지만 이를 실행하면 제가 깝쭉거린 대사는 출력되지 않습니다. 그게 바로 // 때문인데요. 이걸 바로 '주석' 이라고 합니다.

주석은 프로그래밍을 하는데 있어서 구독자, 코워커에 대한 배려라고 할 수 있습니다. 또한, 자기 자신을 위한 것이기도 합니다. 

코드에 대한 설명을 할 때 주로 쓰는데요.  한줄로 설명할꺼면 //을   여러줄로 설명할꺼면 /* */로 하면 됩니다.

주석 2

이렇게 해도 초록색으로 칠해진게 보입니다. 초록색으로 칠해진 부분은 출력에 영향을 전혀 주지 않는다! 라고 이해하시면 되겠습니다.

 

자, 그러면 지금까지 배운걸 토대로 우리 인생의 첫 프로그램을 짜보도록 합시다.

소스코드의 목적은  1. 이름  / 2. 키  / 3. 몸무게    이 3개의 정보를 입력받아서 출력하고자 합니다.

소스 코드 하나하나씩 살펴보겠습니다. 거의 다 챕터0, 챕터1에서 배웠던 내용이고 2가지 정도만 새로 보이는 개념이네요. [ ] 랑 \n (역슬래시 n) 인데요. 일단 이거 제쳐두고 우리가 먼저 아는 것들부터 봅시다.

1. 변수를 먼저 선언했습니다.
키랑 몸무게 그리고 이름을 입력받고자 했습니다. 그렇기 때문에 가장 먼저 이들을 선언해줬습니다. 
2. printf & scanf_s를 통해 키,몸무게,이름을 입력받고 출력하였습니다.
각각의 자료형 변수 타입에 해당하는. 그러니까 int -> %d / float -> %f / char -> %s를 매칭시켜줬습니다.
%d,%f는 앞에서도 배운 내용이니까 익숙하실텐데 %s는 처음보는 것일겁니다.
char 자료형은 크게 2가지 형식지정자와 매칭이 됩니다. %c랑 %s인데요.
c의 경우는 '문자 하나'만을 받을 때 쓰는거고 s의 경우는 '문자 하나 뿐만 아니라 여러 문자들'까지 받을 때 씁니다.

* 보시면 char에다가 값을 선언해준게 "Crush"입니다. 만약 %c라고 했다면 앞에 C 하나만 출력이 됩니다. 왜냐? c라는 형식지정자는 문자 하나만을 입력받는다 했으니까 제일 앞에있는 C만 출력되겠죠. 이해되셨나요?
그래서 사실, c를 쓸 일은 거의 없습니다. 웬만하면 s 형식지정자를 사용하도록 합시다.

** char를 선언하고 printf마냥  문장 혹은 단어를 출력하기 위해서는 " " 큰따옴표를 이용해야 합니다. 작은따옴표해도 되긴해요.
3. ,tall  / ,weight / ,name이 뭐지?
printf를 출력할 때, 입력받은 값을 출력하기 위해선 위 코드에 나온 것처럼 큰따옴표 뒤에 (, 함수명)을 적어줘야 합니다. 

 

* 그럼 이제 안배운 내용을 한번 봅시다. 

1) [ ]가 뭐에요? 

- 아직 완전 기초단계임에도 불구하고 배열 개념을 불가피하게 쓰게 된 점이 죄송스럽지만 뒤에 굉장히 자세히 설명해드릴테니 오늘은 개념만 간단히 설명드릴게요.

이 괄호를 C언어에서는 배열(array)이라고 부릅니다. 예를 들어서요.

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;

이렇게 있다고 합시다. 변수 5개의 값들을 일일이 지정해줬는데요. 여간 귀찮은 일이 아닙니다. 그래서 이걸 간단히 표현하고자 생각한게 배열입니다. 변수 5개를 한 곳에 담아두자는 의미에서

int arr[5] = {1,2,3,4,5};

라고 표현을 합니다. arr은 함수의 이름입니다. 그리고 [5]는 arr라는 배열함수가 5개의 칸을 할당받았다. 라는 겁니다.

그리고 그 5개의 칸에는 각각 1,2,3,4,5라는 값이 저장되어있다. 라고 보시면 됩니다.

 

Q. 그러면 [ ]라고 비워둔 이유는 뭔가요?

A. 비워도 됩니다. 단, arr[]={1,2,3,4,5}; 이런 식으로 배열함수에 무슨 값들이 저장되어있는지 적어줘야합니다. 

그러면 굳이 [5]라고 적지않아도  "아, 값이 5개가 있으니까 5칸이겠구나." 라고 인식을 합니다.

그래서 "Crush"를 썼을 때, 굳이 [6]이라고 적지 않은 것입니다.

 

Q. 왜 [5]가 아니라 [6]인가요?

A. 자, 여기서 더 깊게 들어가면 여러분들 C언어 흥미 잃어버립니다. 그러니까 이 부분은 다음에 배열 제대로 배울 때 언급하겠습니다.

 

 

2) \n가 뭐에요?

출력값 화면

\n을 쓰면 출력을 할 때, 저런 식으로 Enter (개행)가 적용된 상태로 출력이 됩니다. 만약 \n을 안하면 Enter가 적용되지 않고 쭉 한 줄로 이어진 출력값을 마주하게 됩니다.

\n은 가독성을 위해 꼭 필요한 개념이므로 앞으로 자주 쓰게 될 것입니다.

반응형