[KR]초보자를 위한 C언어 학습-2 by pepcilia

View this thread on steempeak.com
· @pepcilia · (edited)
$20.44
[KR]초보자를 위한 C언어 학습-2
안녕하세요. @pepcilia입니다. 저번 포스팅에 부족한 점이 많았는데요. 더 노력하겠습니다.
시리즈 제목을 "초보자를 위한 C언어 학습" 으로 바꾸었습니다.
<hr/>
우선, 저번시간에 급하게 넘어가느라 다루지 못했던 C프로그램의 기본 구조를 알아보고, 화면으로 출력하는 예제를 좀 더 자세히 다루어 보도록하겠습니다. <br>

<hr/>
작업의 지시는 함수안에 들어있습니다. 함수는 { 에서 시작해서 } 로 종료되는데, 이 중괄호 사이에 작업의 지시가 들어가게 됩니다.<br>

~~~
#include<stdio.h>

int main(void)
{
     printf("Hello World!");
     return 0;
}
~~~
이 예제를 보고 함수의 시작과 끝에 대하여 좀 더 잘이해할 수 있을것입니다.<br>
C언어는 이러한 함수들이 모여서 이루어집니다. 이 함수들은 다시 여러 개의 문장들로 이루어지고, 문장들은 순차적으로 실행되면서 작업을 수행합니다.
![스크린샷 2017-06-25 오전 11.18.33.png](https://steemitimages.com/DQmf1G5mprbUo4LmQp8sEMmb3A5UviWeQ8x4ftLMsUVeHpk/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.18.33.png)
자 우리는 C 프로그램의 기본적인 구조를 알아보았습니다. 이제 출력을 좀 더 자세히 다뤄 보도록 하겠습니다.
~~~~~
안녕하세요!
스팀잇 파이팅!
~~~~~
이라는 글을 출력하고 싶습니다. 그러면 어떻게해야할까요 ?
우리가 지금까지 배운 것을 활용하여 프로그램을 작성해보면
~~~~~
#include<stdio.h>

int main(void)
{
     printf("안녕하세요!");
     printf("스팀잇 파이팅!");
     return 0;
}
~~~~~
로 작성할 것입니다. 하지만 이렇게 작성해보시면 원하는 결과가 나오지않죠.
>안녕하세요!스팀잇 파이팅!

이라고 출력될 것입니다. 그래서 우리는 소스코드를 수정해야만 합니다.
~~~~~
#include<stdio.h>

int main(void)
{
     printf("안녕하세요!\n");
     printf("스팀잇 파이팅!\n");
     return 0;
}
~~~~~
바뀐건 문장 끝에 \n을 적은 것 밖에 없습니다 :D
이렇게, 컴퓨터를 제어하는 목적으로 사용되는 특수한 문자들을 이스케이프 시퀀스라고 합니다.
![스크린샷 2017-06-25 오전 11.28.37.png](https://steemitimages.com/DQmf7ZePHb8bcd2vffqb5cHoPUYN7iKMsfEZZDsehA4rJjN/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.28.37.png)
이제 정수와 실수, 그리고 형식지정자에 대하여 알아보겠습니다.
* 컴퓨터는 본질적으로 숫자를 처리하는 기계입니다.
* 컴퓨터가 처리하는 수의 종류는 정수와 실수로 나눌 수 있습니다.
     * 정수 : 1, 2, 4, 8, -1, ,-2 ...
     * 실수 : 3.14, 6.0, 0.1212 ...

이제 간단하게 먼저 정수를 출력하는 예제 코드를 보고 형식 지정자에 대해 이해하도록 합시다.
함수 안쪽 내용만 살펴보도록하죠.
~~~~~
printf("%d은 정수입니다.",10);
~~~~~
여기서 사용된 %d와 같은것을 형식지정자라 합니다.
![스크린샷 2017-06-25 오전 11.34.14.png](https://steemitimages.com/DQmWSEcuFsMesCgn8sjPi2osUSHKTQz6LTg2jkQxZk5QJT6/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.34.14.png)
이렇게 다양한 형식 지정자의 종류가 있습니다.
이제 이 형식지정자들을 사용하는 예제를 보겠습니다.
~~~~~
#include<stdio.h>

int main(void)
{
     printf("%d는 정수입니다.\n", 10);
     printf("%f는 정수입니다.\n", 10.14);
     printf("%c는 정수입니다.\n", 'A');
     printf("%s는 정수입니다.\n", "Steemit");

     return 0;
}
~~~~~
위 예제에서 알 수 있듯이
* 문자(character)는 ' '(작은따옴표)를 이용해서 표기합니다.
* 문자열(string)은 여러 개의 문자가 나열된 것으로, " "안에 넣어서 표기합니다.

위에서 출력에 관련된 이스케이프 시퀀스와 형식지정자에 대해 알아보았습니다.

여기 까지만 하기 아쉬우니, 변수 까지 알아볼까요 ?
* 변수는 컴퓨터의 메모리 안에 만들어지는 공간으로 숫자나 문자를 저장할 수 있는 공간입니다.
![스크린샷 2017-06-25 오전 11.44.55.png](https://steemitimages.com/DQmVxQnj78WGhjgzDAv3kBY6CLkxwAmLnr4yeG4nBwMZkrX/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.44.55.png)
그렇다면 변수는 왜 필요할까요 ?
우리는 다음시간에 사용자로부터 숫자나, 문자를 입력받을 것인데, 이것들을 저장할 공간이 필요합니다.
그래서 변수를 선언해줘야하는것입니다.
* 변수는 *데이터를 담아두는 상자*로 생각할 수 있습니다.
* 변수에 있는 값은 언제든지 바뀔 수 있습니다.

변수의 개념에 대하여 알았으니, 변수를 선언하는 방법에 대해 알아봅시다.
* 변수를 선언하기 위해선, *자료형*과 *변수의 이름*을 적어줘야합니다.
가장 많이 사용되는 자료형만 표시하자면
![스크린샷 2017-06-25 오전 11.50.16.png](https://steemitimages.com/DQmdSSCUMzhwoVZtbYmqdJetWP7KH3WkBKqUcp86vAbHWHo/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.50.16.png)
등이 있고 아래와 같이 활용할 수 있다.
~~~~~
int x;
float y;
char c;
~~~~~
변수의 이름은 자유롭게 지을 수 있지만, 아래의 사항을 참고하여 적는것이 좋다.
* 영문자와 숫자,under bar(_) 사용, _이외의 특수문자 사용불가
* 첫 글자는 반드시 영문자 또는 _
* 대문자와 소문자는 구별됨
* C언어의 예약어와 똑같은 변수이름은 금지됨. ex) printf
* 의미있는 이름이 좋음

![스크린샷 2017-06-25 오전 11.53.34.png](https://steemitimages.com/DQmT4SjaxKRMVsdnPvDPyhcwqPLMZjq37kYpiRXfVtxqtj1/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.53.34.png)
처음 변수를 선언하고나면, 변수라는 박스안에는 쓰레기값이 들어있다. 이것을 원하는 값으로 초기화 시켜주려면 변수를 선언할 때 변수 이름뒤에 =을 붙이고 초기값을 적으면 됩니다.
~~~~~
int x=10;
float y=3.14;
char c='A';
~~~~~
또, 선언 이후 초기화를 따로 해줄 수 있고, 이 방법은 변수에 저장된 데이터를 변경할 수도 있습니다.
~~~~~
int x;
x=10;
x=20;
~~~~~
이런식으로 사용되면, x라는 변수는 쓰레기값을 저장하다가, 10을저장하고, 최종적으로 20을 저장합니다.
또한 변수는 변수끼리의 산술연산도 가능합니다.
아래의 그림처럼 =(대입연산자) 오른쪽의 값이 계산되어 왼쪽에 저장되게 됩니다.
![스크린샷 2017-06-25 오전 11.59.06.png](https://steemitimages.com/DQmSAwR5v47JyFPaM1gwKurgqetizHBSy9TLHKHwNLyXL3h/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.59.06.png)
이정도로 간단하게 변수에 대해서도 알아보았습니다.
이 포스팅의 내용을 복습하기 위해서는 위 그림을 소스코드로 구현해 보는 것도 좋습니다.
변수x를 100으로 초기화하고, y를 200에 초기화 한 후 계산 후 sum에 대입하는 간단한 코드입니다.
다음글에서는 상수, scanf명령어, 조건문 등에대해 알아보겠습니다.
미숙한 점이 많겠지만,  앞으로 더 발전하는 @pepcilia가 되겠습니다.
👍  , , , , , , , , , , , , , ,
properties (23)
post_id4,986,354
authorpepcilia
permlinkkr-c-2
categorykr
json_metadata"{"format": "markdown+html", "community": "esteem", "links": [], "tags": ["kr", "kr-dev", "kr-newbie", "language", "programming"], "app": "esteem/1.4.5", "users": ["pepcilia", "pepcilia"], "image": ["https://steemitimages.com/DQmf1G5mprbUo4LmQp8sEMmb3A5UviWeQ8x4ftLMsUVeHpk/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202017-06-25%20%EC%98%A4%EC%A0%84%2011.18.33.png"]}"
created2017-06-25 03:03:45
last_update2017-06-25 07:05:42
depth0
children7
net_rshares1,856,446,984,696
last_payout2017-07-02 03:03:45
cashout_time1969-12-31 23:59:59
total_payout_value15.816 SBD
curator_payout_value4.620 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length4,380
author_reputation400,149,448,086
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars0
author_curate_reward""
vote details (15)
@inspiredjw ·
정성들인 글 업보트하고 갑니다~
properties (22)
post_id4,993,102
authorinspiredjw
permlinkre-pepcilia-kr-c-2-20170625t044220349z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2017-06-25 04:42:24
last_update2017-06-25 04:42:24
depth1
children1
net_rshares0
last_payout2017-07-02 04:42:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length17
author_reputation836,030,693,651
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@pepcilia ·
업보트 감사합니다~ 팔로우했어요
properties (22)
post_id5,000,361
authorpepcilia
permlinkre-inspiredjw-2017625t152713110z
categorykr
json_metadata"{"app": "esteem/1.4.5", "format": "markdown+html", "community": "esteem", "tags": "kr"}"
created2017-06-25 06:27:15
last_update2017-06-25 06:27:15
depth2
children0
net_rshares0
last_payout2017-07-02 06:27:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length17
author_reputation400,149,448,086
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries
0.
accountesteemapp
weight500
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@chocomuscake ·
웁스..너무 어렵습니다. 아무튼 업보팅합니다.
properties (22)
post_id5,001,781
authorchocomuscake
permlinkre-pepcilia-kr-c-2-20170625t064823885z
categorykr
json_metadata"{"app": "steemit/0.1", "tags": ["kr"]}"
created2017-06-25 06:48:24
last_update2017-06-25 06:48:24
depth1
children1
net_rshares0
last_payout2017-07-02 06:48:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length25
author_reputation6,556,418,494,179
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@pepcilia ·
요즘은 그래서 복잡한 문법이 없는 파이썬이라는 언어로 프로그래밍을 시작하기도해요..! 프로그래머가 장래희망이 아니라도 여러 문제 해결능력을 기를 수 있는 밑바탕이 될 수 있다고 생각해서 ㅎㅎ 관심가져보시는것도 나쁘지 않을것 같아요! 업보트 감사드리고 팔로우했어요:D
properties (22)
post_id5,002,106
authorpepcilia
permlinkre-chocomuscake-2017625t155233653z
categorykr
json_metadata"{"app": "esteem/1.4.5", "format": "markdown+html", "community": "esteem", "tags": "kr"}"
created2017-06-25 06:52:36
last_update2017-06-25 06:52:36
depth2
children0
net_rshares0
last_payout2017-07-02 06:52:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length148
author_reputation400,149,448,086
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries
0.
accountesteemapp
weight500
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@lgs8235 ·
전문가??
잘보고 갑니다~
properties (22)
post_id5,002,818
authorlgs8235
permlinkre-pepcilia-2017625t16211376z
categorykr
json_metadata"{"app": "esteem/1.4.5", "format": "markdown+html", "community": "esteem", "tags": "kr"}"
created2017-06-25 07:02:12
last_update2017-06-25 07:02:12
depth1
children1
net_rshares0
last_payout2017-07-02 07:02:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length14
author_reputation7,394,160,765,861
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries
0.
accountesteemapp
weight500
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@pepcilia ·
그냥 학부생입니다 ㅎㅎ
properties (22)
post_id5,002,977
authorpepcilia
permlinkre-lgs8235-2017625t16452918z
categorykr
json_metadata"{"app": "esteem/1.4.5", "format": "markdown+html", "community": "esteem", "tags": "k"}"
created2017-06-25 07:04:54
last_update2017-06-25 07:04:54
depth2
children0
net_rshares0
last_payout2017-07-02 07:04:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length12
author_reputation400,149,448,086
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries
0.
accountesteemapp
weight500
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@randowhale ·
$0.03
This post received a 1.3% upvote from @randowhale thanks to @pepcilia!  For more information, [click here](https://steemit.com/steemit/@randowhale/introducing-randowhale-will-you-get-the-100-vote-give-it-a-shot)!
👍  
properties (23)
post_id5,026,539
authorrandowhale
permlinkre-kr-c-2-20170625t123206
categorykr
json_metadata"{"format": "markdown", "app": "randowhale/0.1"}"
created2017-06-25 12:32:06
last_update2017-06-25 12:32:06
depth1
children0
net_rshares2,575,988,331
last_payout2017-07-02 12:32:06
cashout_time1969-12-31 23:59:59
total_payout_value0.026 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length212
author_reputation47,497,053,264,845
root_title"[KR]초보자를 위한 C언어 학습-2"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)