디시인사이드 갤러리

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

갤러리 본문 영역

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

겔럭시U갤로그로 이동합니다. 2011.03.16 03:26:51
조회 210 추천 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 - -
공지 프로그래밍 갤러리 이용 안내 [71] 운영자 20.09.28 36126 62
2722744 일없는 회사 3년째 다니는중 프갤러(59.7) 16:10 1 0
2722742 지원자 나밖에 없는데 시발 연락안오네 좆소새끼가 ㅇㅇ(112.150) 16:06 13 0
2722736 항플 돈쓰고 들어왔는데 실시간 후회중이다 ㅇㅇ(211.234) 15:54 11 0
2722735 일 없는데 퇴사하는게 맞지? [1] ㅇㅇ(211.234) 15:54 17 0
2722733 난 프론트엔드 개발자로 뽑혔지만, 한번도 스스로 개발자라 생각 안해봄. 프갤러(211.114) 15:48 15 0
2722732 안녕 si전사임 ㅇㅇ(106.102) 15:48 16 0
2722730 왜 자꾸 다들 새끼줍냥이 죽었다고 생각하는것임? ♥선냥한냥덩♥갤로그로 이동합니다. 15:47 10 0
2722729 아 보추 섹스 중독성 ㅈㄴ심하다 프갤러(222.109) 15:46 18 0
2722727 몇몇 국비 학원들 보다 보면 연계 회사 목록에 우리 회사 있던데 ㄷㄷㄷ(211.234) 15:45 12 0
2722726 유닛테스트 의미 있다고 봄? [2] ㅇㅇ(119.192) 15:45 19 0
2722725 급발진 - 악의적인 메시지 관련되어 프갤러(121.172) 15:43 30 1
2722722 중앙진출 도리스아sk(112.170) 15:40 11 0
2722718 Rx Chat Gpt 서비스?! 프갤러(121.172) 15:29 30 1
2722717 조선특 몇개월뒤 비번 변경팝업 언제사라지냐? [2] 헬마스터갤로그로 이동합니다. 15:28 21 0
2722716 빨리 맘마먹구 주무시구 싶은대 배가 안구푸당 [4] ♥선냥한냥덩♥갤로그로 이동합니다. 15:28 26 0
2722715 통계는 단지 수치일 뿐! 프갤러(121.172) 15:27 21 1
2722714 코딩이나 해볼까 [2] 프갤러(221.153) 15:27 29 0
2722711 라인야후에 취업하려면 어캄? [1] 프갤러(1.216) 15:21 25 0
2722710 나무아미타불관세음보짓살.. ♥선냥한냥덩♥갤로그로 이동합니다. 15:20 10 0
2722708 사용자 일평균 1000명도 안찍히는 개좆소따리들이 [2] 프갤러(211.36) 15:17 33 2
2722706 예전에 게임프로그래머가 다이어트 성공한거 강의했다는데 [2] 발명도둑잡기갤로그로 이동합니다. 15:15 22 0
2722705 신입사원 면접볼 때 정상인지 판별하는 법 [1] 프갤러(58.143) 15:15 37 3
2722703 선생님들 프론트엔드 공부중인데 뭐해야해요? [11] ㅇㅇ(125.242) 15:12 59 0
2722702 내가 뭐하냐구? RxFramework! [7] 프갤러(121.172) 15:11 46 1
2722701 next 얘네 왜 useRouter 부숴놨지 [3] 노력갤로그로 이동합니다. 15:08 29 0
2722700 Pixel Window 발명도둑잡기갤로그로 이동합니다. 15:07 6 0
2722699 v8 Engine과 RxFramework 프갤러(121.172) 15:06 25 1
2722698 청와대 국민청원 사이트와 해킹과 보안의 취약점 프갤러(121.172) 15:06 23 1
2722696 워라밸 오지는 중소 4000 vs 비주류 솔루션 대겹 4800 [13] ㅇㅇ(118.235) 15:04 70 0
2722694 3명짜리 회사에서 한명 뽑는데 75명 지원 이게 맞냐? 프갤러(223.38) 15:01 17 0
2722693 챗 지피티의 기능적 제한이 걸려 있음 프갤러(121.172) 14:58 38 1
2722691 중소기업 면접은 그냥 인상, 태도, 말투, 외모, 기세 그런거 아님 ? [2] ㅇㅇ(112.150) 14:55 38 0
2722688 요즘 react ssr 많이 이야기 하는데 php는 원래 ssr 아냐? [1] 바람을바람갤로그로 이동합니다. 14:46 27 0
2722686 삼성전자 올해 매출 예상 310조, 한국정부 예산 657조 [3] 발명도둑잡기갤로그로 이동합니다. 14:46 29 0
2722685 샤워하면서 이런 생각이 들었는데 이런 근무환경 어떨거같음? [1] 와히라나고미갤로그로 이동합니다. 14:45 28 0
2722684 나 같은 애는 컴공 하면 안 됨? [4] 프갤러(1.216) 14:42 53 0
2722683 신입 들어간곳 연봉 5천인데 마음에 안드는데 퇴사해야하나.. [3] 프갤러(106.101) 14:42 54 0
2722681 네이버 부캠 ai는 2차 코테 언제 보냐 ㅇㅇ(223.62) 14:39 22 0
2722679 잠 재대로 못자서 저녁 일찍먹구 자애겟당 ♥선냥한냥덩♥갤로그로 이동합니다. 14:36 10 0
2722677 하암 오늘은 어제못한 공부해야지.. 따당이갤로그로 이동합니다. 14:32 22 0
2722675 빡대가리도 코등하는 RxFramework! 프갤러(121.172) 14:26 39 1
2722674 걍 문돌이 취업했는데 뭐 공부할까? 프갤러(1.216) 14:25 21 0
2722673 빡대가리는 코딩하면 안되겠다 프갤러(59.7) 14:24 20 0
2722672 자소서 짧게 써도되냐 ㅇㅇ(211.246) 14:24 9 0
2722670 공부 <== ㅈㄴ 재밌는거임 [3] 프갤러(210.178) 14:23 46 1
2722668 집에서 공부 안되는데 어캄? [1] 프갤러(1.216) 14:18 25 0
2722666 급발진 관련되어 - 처벌 강화가 정당한가? 프갤러(121.172) 14:13 36 1
2722665 aws 공부할 거 추천좀 [6] 주아갤로그로 이동합니다. 14:12 40 0
2722662 노자취기준 세후 300부터가 삶이 풍요로운듯 [11] 프갤러(210.178) 14:07 74 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2