디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[겔럭시U]병신이 배우면서 가르치는 병신들을 위한 C언어 -3일차-

겔럭시U갤로그로 이동합니다. 2011.03.16 03:26:51
조회 209 추천 0 댓글 2


오늘 공부할 내용은.

변수와 자료형에 대해서 알아보려고해.

뭐... 크게 어려운 부분이 아니지만 처음 접해보면

약간 이해가 잘 되지 않을 수도 있어.. 하지만 굉장히

중요한 파트니까 꼭 숙달될때까지 공부하기 바래..

-----------------------------------------------------------------------
Day3 - 변수와 자료형 이해하기-


어.. 일단 우리가 자료형이나 변수에 대해 살펴보기전에..

"예약어"라는걸 알아야돼..

이 예약어라는게 뭐냐면 우리가 소스를 작성할 때 여러가지 명령에 필요한

단어들을 컴파일러에서 C언어 표준에 맞게 미리 정의해 놓은거야..

형들이 프로그래밍을 할때 이 예약어들을 사용해서 명령을 내리면 돼..

예약어는 기능에 따라 여러가지 있지만 나중에 차근차근 배우고..


오늘 진짜로 배울꺼는 "변수""자료형"인데

일단 "변수"를 살펴보자..

프로그래밍에서 변수는 아주 간단해...

뭐 고딩때 수학배우면서 변수라는 개념을 배울텐데..

뭐 약간 개념이 다르다고 할수있어..

프로그래밍에서는 변수는 데이터를 저장할 수있는 공간이라고 생각하면되..

한마디로 이 변수를 활용해서 우리가 메모리에 데이터를 저장하고 활용할 수 있다는거지.

"변수는 저장공간" 이다 라고 일단 이해하고 넘어가면 쉬울꺼같아...

우리가 프로그램을 만들면서 여러가지 데이터들을 저장해야 하는 경우가 생기는데

이 데이터들을 변수라는 곳에 저장한다는 이야기야...

자 그럼 우리가 데이터를 저장하기위해서 컴퓨터에게 "나에게 저장할 데이터가있으니 공간을 달라"라고

선언을 해줘야지.. 한마디로 우리가 저장공간을 사용하기 위해서는 컴퓨터에게 미리 이야기를 해줘야한다는거지..

int a;

자.. 위에처럼 적어주면돼..

한글로 해석해보면 "이름이 a라는 정수형 변수를 선언하다"라고 할수있어.

변수를 선언하는 방식은...

자료형 이름;

이렇게 입력하면되...

이름은 형들 마음대로 만들수 있는데... 약간의 규칙이 있어..

1.공백문자(스페이스)는 쓸수 없고..
2.이름 맨 앞에는 숫자는 사용할수없어.
3.특수문자도 사용할수없고,(단, _ 는 쓸수있엉) 한글도 안되겠지?
4.앞서 말했던 "예약어"도 사용못해.
5.마지막으로 이름의 대문자, 소문자를 구분해.

몇가지 특징이 더 있는데... 글자수 제한이라던가..궁금하면 검색해봐..

그 규칙만 지키면 원하는 이름을 적어서 활용하면 되겠어..

자.. 그럼 이제 "자료형"이란걸 공부해볼껀데..

우리가 컴퓨터한테 데이터를 저장하기위해 공간을 달라고 할때...

사용 용도(자료형)를 알려줘야돼..

그래야 컴퓨터가 그 용도에따라서 적절한 공간을 할당해주고 알맞는 작업을 진행하니까..

"야 공간 내놔" 이렇개 해뿔면

공간 어느정도를 줘야할지 공간에 뭐를 어떤 방식으로 넣을지 등등.. 컴퓨터는 알지 못하니까..

 

이런 사용 용도에따른 "자료형"에는 상당히 여러가지가 있는데

C언어에서는 대표적인 자료형을 예약어(int, float, double, char, unsingned.. etc)로 만들어 놨어..

위에서 본 int도 그중에 하나라고 할수있어..

자 그럼 그 대표적인 자료형들중 몇가지를 알아보자.

정수형 : int

integer의 준말로 "정수"형인 자료형을 말해.

정수는 다 알지? -2,-1,0, 1, 2, 3, 4, 5... 알지...?

이런 정수들을 저장하기위해서 사용되는 자료형이 바로 int야...

위에서 예를 든 "int a;"도 정수형 변수지..
-------------------------------------------------------------

실수형 : float

사전에서 찾아봤는데 뭐 관련된 뜻은 못찾겠네..뭐 어떤 의미가 있겠지...ㅋㅋ

아무튼 float는 "실수"형인 자료형이야..

위에서 정수를 저장하는 곳을 int형이라면

실수를 저장하는 곳을 float형 이라고 할수있지.

실수도 뭔지 알지? 1.1, 3.2 이런거.. 소수점 붙은거..
-------------------------------------------------------------

문자형 : char

character의 준말. 뜻은 뭐.. 여라가지가 있는데 그 중에 "글자"라는 뜻이있네..

말 그대로 한 글자를 저장하기 위한 변수형이야..

a,b,c,d 같은거 말이지...

여기서 중요한점은 \'한 글자\'라는 거야.. 한글자.. 한단어나 한 문장아 아니라는거지..

이 외에도 변수의 크기에 따라 용도에 따라 더 많은 자료형들이 있지만 이건 내일 배워보자.

중요한건 자료형에 따라 공간이 만들어지고 반듯이 그 공간에 맞는 값을 입력해야한다는거야..

실수형 선언해놓고 문자를 입력하면 안된다는 거지..

(아 물론 정수는 실수형에다 입력해도되지.. 실수에는 정수도 포함되니까....)

자 위에서 봤던것처럼

int a;

이렇게 함으로써 이제 우리는 int형(정수)을 저장할 수 있는 공간이 생긴거야..

하지만 이 공간에 우리가 데이터를 넣어준 적이 없으니

이 공간에는 "쓰레기값"들이 들어있어..빈 공간이 만들어지는게 아니라

변수공간이 생성되면서 컴파일러에 의해서 아무런 의미없는 "쓰레기 값"들이 채워지게 되지..

그럼 우리가 다음 해야할 작업은 이 "쓰레기 값"이 들어있는 변수에

우리가 저장할 값을 넣어줘야해.. 그래야 의미가 있겠지..

방법은 아주 간단해..

a = 10;

참 쉽죠? 위에 소스를 정리해볼까?

#include <stdio.h>

int main(void)
{
       int a;
       a = 10;

       return 0;
}

자 위에 소스를 보면 "int형 a라는 변수를 만들고

그 변수에다가 10이라는 값을 넣어주겠다."라는

이야기지... 이해됬음?

자 여기서 중요한것은... 우리가 아는 "="이 기호를 주의해야해..

우리가 수학에서 "="기호는 "같다", 즉 동등의 의미를 가지고있지만..

C언어에서는 "="기호는 "대입연산자"라고 하는 연산자야..

뭔말이고 하면... "="이 기호는 "우측의 있는 값을 좌측의 공간에 대입하겠다" 라는 의미의 "명령어"라는 거야.

우리가 일반적으로 알고있는 동등의 의미의 기호는 C언어에서는 "=="이야.. 2개를 붙여서 쓰지..

(이부분은 나중에 연산자파트에서 다시 알아보도록하고)

이렇게 "="기호를 이용해서 메모리상에 공간을 확보하고 그 안에다가 "값"을 넣어준거지.

다른 방법도있어..

int a = 10;

위에 보면 무슨 말인지 알겠지?

이처럼 변수를 선언함과 동시에 10이라는 값으로 "초기화"해줄수도있어.

이런걸 초기화라고 하는데 지금이야 이런 초기화를 해주던 안해주던 큰 상관은 없지만

나중에 규모가 큰 프로그램을 만들다보면 초기화를 해주지 않아서 치명적인 오류를 맛볼수있으니..

변수를 만들면 되도록이면 초기화 해주는 습관을 들이도록 하자.


그 다음으로 변수를 만드는데 한번에 여러개를 만들수 없을까?

당연히 있어..

다음을 보면

int a, b, c;

이렇게.. 쉽지? 이건 정수형 변수 a와 b와 c를 만들겠다는 이야기야

","을 사용해서 각 변수들을 구분지은 거야.

즉 정수형 변수 3개가 만들어진거지..

다른것도 해볼까..

double a, b, c;

알겠지?

이것도 선언과 동시에 초기화를 해줄수있어..

int a = 10, b = 20, c;

이렇게.. 그러면 a에는 10, b에는 20, c에는 쓰레기값들이 들어가게 되겠지.

다음으로 문자형을 알아보까..

문자형은 뭐라고 했지?

char였지?

자료형 이름;

방식으로... 변수를 만들어보면..

char ch;

가 되고 중요한건 값을 넣는 건데..

ch = \'a\';

이렇게 넣어줄수 있어..

\'\' 이 기호안에 한 문자를 넣어줘야해..(\' \' 이 기호 안에 있는건 문자입니다..라고 명시해주는거야..)

이것도 마찬가지로

char ch = \'a\';

로 변수 선언과 동시에 초기화를 해줄수 있어..


자 오늘 배운걸 총 정리해보면

#include <stdio.h>

int main(void)
{
      int a = 10, b = 20, c;
 
      char ch = \'a\';
 
      c = 30;

      printf("a : %d, b : %d, c : %d, ch : %c", a, b, c, ch);

      return 0;
}


자 위에 소스보면 만들어서 실행해보면

우리가 입력한 값들이 알맞게 뜨는걸 볼수있을꺼야..

printf는 나중에 배울꺼니까 오늘은 그냥 넘어가..

-----------------------------------------------------------------

이렇게 오늘 자료형과 변수에 대해서 간략하게 알아봤어.

오늘 배운것중에 자료형은 무엇을 의미하는지

변수는 무엇을 의미하는지

변수에 값을 어떻게 넣는지..등 을 배웠는데..

간략하게 개념정도만 알고 넘어갔으면 좋겠어

원래 자료형에 따른 변수의 종류나 범위에 대해서 자세히 알고넘어가야 하는데

이 부분이 메모리에 대한 개념도 알아야하고

어렵고 상당히 양이 많으니

내일 자세하게 공부하도록 하자

-------------------------------------------------------------------------------------------------- 

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 외모와 달리 술 일절 못 마셔 가장 의외인 스타는? 운영자 24/07/01 - -
239331 i = (i++)+(++i); i=3..난 9가 나오는데?.. [3] ㅁㄴㅇㅁㄴㅇ(219.249) 11.03.20 56 0
239330 아 씨1발 어떤새끼 글눌르면 자꾸 단드로이드갤로그로 이동합니다. 11.03.20 40 0
239329 C++쟁이 모여라! [3] 도도동(175.118) 11.03.20 64 0
239328 그래서 (i++) + (i) 이건 얼마라고? [4] Route갤로그로 이동합니다. 11.03.20 57 0
239327 이거 왜 결과가 이렇게 나오는지좀 알려주세요... 좁뉴비(222.237) 11.03.20 64 0
239326 횽들 다시 질문 미안해 [3] 아리햏갤로그로 이동합니다. 11.03.20 58 0
239325 나가튼 쉐리도 쉽게 해킹할만한 영역 [6] (115.136) 11.03.20 127 0
239324 - [13] GCNB갤로그로 이동합니다. 11.03.20 64 0
239323 게임하거나 인터넷 게시판보면 [2] (115.136) 11.03.20 54 0
239322 연산자 퀴즈 [8] (175.205) 11.03.20 55 0
239321 ■ [특집] 이명박 왕시리즈.swf - 알바 개객끼 [1] 아따(211.202) 11.03.20 49 0
239320 단드로이드/ 머머읽었었음? [6] 원싸갤로그로 이동합니다. 11.03.20 52 0
239319 형들 이거좀 알려줘 ㅠㅠ;; [1] c\'ex(222.237) 11.03.20 73 0
239318 머리속에 생각으로 가득하다는 gcnb에게 [2] 원싸갤로그로 이동합니다. 11.03.20 40 0
239317 i가 3일때 (i++)+(++i)가 8이되는 이유 [12] 단드로이드갤로그로 이동합니다. 11.03.20 80 0
239315 아오!!1 뒷장에 return n; 잇엇네 [2] 아리햏갤로그로 이동합니다. 11.03.20 28 0
239313 아... 프갤형들이 [3] 아리햏갤로그로 이동합니다. 11.03.20 53 0
239312 i가 3일때 (i++) + (++i)가 몇인지 모른다고 [6] 단드로이드갤로그로 이동합니다. 11.03.20 54 0
239311 프로그래밍은 문과생들이 더 잘한다는 말있자나 [11] 원싸갤로그로 이동합니다. 11.03.20 120 0
239310 토탈=1 i=2 토탈*=n 이거로 3개아님 ??!! [3] 아리햏갤로그로 이동합니다. 11.03.20 29 0
239309 GCNB횽 보세요 (2) [5] monoless갤로그로 이동합니다. 11.03.20 76 0
239307 이제 php 시작하려고 하는데 질문좀 [9] 원싸갤로그로 이동합니다. 11.03.20 78 0
239306 아 이거 엄청만은데 골머리 썩겟네 횽들 다시봐줘 [6] 아리햏갤로그로 이동합니다. 11.03.20 42 0
239305 올해 고3인 수험생입니다. [9] 수험생(117.55) 11.03.20 71 0
239304 램이 512MB면.. [6] 단드로이드갤로그로 이동합니다. 11.03.20 55 0
239302 이클립스로 앱개발 못하겠는 새끼들은 봅니다 [3] 단드로이드갤로그로 이동합니다. 11.03.20 79 0
239301 ∫ 2t dt=t²+..형 나 제자로 받아줘 나 아싸라서 선배따위 몰라 [11] 아리햏갤로그로 이동합니다. 11.03.20 82 0
239299 너네 안드로이드 마켓에 등록이나 하고 어플개발하냐? [1] 단드로이드갤로그로 이동합니다. 11.03.20 66 0
239298 아니 그럼대입 3에 덧셈 n-2에 곱셈 n-2 비교는 업나 이거 맞어 ? [2] 아리햏갤로그로 이동합니다. 11.03.20 60 0
239297 프로그래밍은 공대생보다 문과생들이 더잘함 [2] 좆꼬딩(175.205) 11.03.20 117 0
239296 gcnb 는 보라 [3] gcnb(121.171) 11.03.20 49 0
239295 GCNB횽 보세요 [3] monoless갤로그로 이동합니다. 11.03.20 59 0
239294 아오ㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗㅗ 주란갤로그로 이동합니다. 11.03.20 48 0
239293 횽들 나 뉴비인데 정말 과제 급해서 무러봄.... [7] 아리햏갤로그로 이동합니다. 11.03.20 99 0
239292 와 진짜 나도 컴공과지만 웹서핑도 못하게 하는 개시발놈의 11번가 옥션새 [7] 형들아(14.41) 11.03.20 105 0
239291 형들 이거좀 알려줘 급함 급함 c언어질문 [17] 컴공과 늅늅(112.158) 11.03.20 137 0
239289 디시인사이드 정도 되는 사이트 만들 수 있으신분 구합니다.(동업자구함) [38] GCNB갤로그로 이동합니다. 11.03.20 216 0
239288 프로그래머는 자격증은 뭐를 따야됄까 [3] 자격증(125.187) 11.03.20 83 0
239287 이클립스 에뮬 돌릴건데 램 DDR 512MB 안됨??? [6] (210.113) 11.03.20 62 0
239286 씨벌 이클립스 외국인새끼들 이클립스(125.187) 11.03.20 40 0
239285 님아님아 디씨인사이드랑 똑같은 사이트 만드는 방법 알아냈음 김유식(125.187) 11.03.20 60 0
239284 대학원진학하려는데.. 조언좀 [2] 호비잇갤로그로 이동합니다. 11.03.20 95 0
239283 너네는 스맡폰 광고 어디에서 쓰냐 [1] 광고쟁이(125.187) 11.03.20 40 0
239282 디시인사이드 정도 되는 사이트 만들 줄 아시는분? [2] GCNB갤로그로 이동합니다. 11.03.20 43 0
239281 스마트폰에서 광고 수익 많이 올리는 방법 [1] 광고쟁이(125.187) 11.03.20 65 0
239280 프로그래밍은 때를 타야한다고 생각하는데? 프로그래밍은(125.187) 11.03.20 47 0
239278 우리는 프리더같은 CEO를 만나야합니다. 프리더님만세(121.144) 11.03.20 103 0
239277 이클립스 안드로이드 개발이랑 opengl 돌릴건데 [3] (210.113) 11.03.20 88 0
239276 보안쪽으로 빠질려면 c랑 tcp/ip를 주력으로 공부하면 되나요? [4] ㅇㅇㅇ(219.249) 11.03.20 102 0
239275 본격 디시인사이드 만들기 [9] 아주아슬갤로그로 이동합니다. 11.03.20 223 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2