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
// 야, 이것도 출력해봐 컴퓨터야 ㅋㅋ
// 아니, 못해? 이걸 출력못해???????????
#include <stdio.h>
int main()
{
int tall;
printf("How much your tall? : ");
scanf_s("%d",&tall);
printf("Your tall is %d",tall);
return 0;
}
이전 시간에 짜놨던 소스코드에서 // 라는 걸 이용해서 제가 이상한 문구를 적었습니다. 하지만 이를 실행하면 제가 깝쭉거린 대사는 출력되지 않습니다. 그게 바로 // 때문인데요. 이걸 바로 '주석' 이라고 합니다.
주석은 프로그래밍을 하는데 있어서 구독자, 코워커에 대한 배려라고 할 수 있습니다. 또한, 자기 자신을 위한 것이기도 합니다.
코드에 대한 설명을 할 때 주로 쓰는데요. 한줄로 설명할꺼면 //을 여러줄로 설명할꺼면 /* */로 하면 됩니다.
이렇게 해도 초록색으로 칠해진게 보입니다. 초록색으로 칠해진 부분은 출력에 영향을 전혀 주지 않는다! 라고 이해하시면 되겠습니다.
자, 그러면 지금까지 배운걸 토대로 우리 인생의 첫 프로그램을 짜보도록 합시다.
소스코드의 목적은 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은 가독성을 위해 꼭 필요한 개념이므로 앞으로 자주 쓰게 될 것입니다.
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] #5. while 반복문과 do ~ while 반복문 (0) | 2022.01.19 |
---|---|
[C언어] #4. 반복문 for문과 이중 for문 (0) | 2022.01.19 |
[C언어] #3. 조건문 if , else if , else / 논리 연산자 (0) | 2022.01.19 |
[C언어] #1. 자료형 타입과 scanf 함수에 대하여 (0) | 2022.01.18 |
[C언어] #0. C언어를 왜 배워야 하는가? / "Hello World" (0) | 2022.01.18 |