세번째.
이건 예전에 제가 싸이월드 페이퍼에 작성했던 글입니다.
개인적으로 공부하고자 올린 거지만 다른 분들도 보시고 혹 부족한 점이
있으면 말씀해 주세요 :)
1) 프로그램의 구조 및 설명
2) 변수의 종류
1) 프로그램의 구조
우선 예를 들어 프로그램 하나를 봅시다.
#include <stdio.h>
void main(void){
int a; //변수 선언
a=10; //변수에 값 지정
printf("a는 %d입니다.", a); //출력
}
여기서
1) #include <stdio.h>
전처리기라고 불립니다.
사실 printf, scanf(기본 입출력 함수의 종류 나중에 쓰여요)라고 선언해봐야
컴퓨터는 무슨소린지 모른답니다. 한마디로 깡통이죠
그렇기에 프로그래머들이 미리 이 무언가를 만들어
저희가 printf 라고 하면 출력이라는 명령을 한다고
컴퓨터에 전해주는 뭔가가 있어야 하죠 그 무언가가 바로 stdio.h, 즉
헤더 파일이라는 파일입니다. Standard Input Output 의 약자에 Header 가 붙은거죠
이 헤더파일에는 저희가 printf를 적으면 출력을 뜻한다고 컴퓨터에
직접적으로 전해지는 실제 언어들이 적혀있습니다.
저 #include <stdio.h>를 직역하면
포함한다. <표준입출력.h> 잖아요? ㅋ 저 stdio.h 는 진짜 파일 이름이랍니다 ㅋ
저걸 미리 처리해놓는 것이 바로 전처리기
#include 의 역활입니다.
이 전처리기는 종류가 좀더 많은데요 우선 천천히 알아가도록 하고
또! 저기 적은 내용이 이해가 안가시더라도 걱정하지 마세요
우선은 저게 무엇인지 이름만 알아두셔도 충분하답니다.
2) void main(void){ ...... }
메인함수입니다.( { ...... } 포함입니다.)
여기서 1장에 말한 것 처럼 여러가지의 함수로 구성이 되는데
이 함수의 기본 모테(母胎)가 바로 main() 함수 입니다.
저 {...} 사이에 들어가는게 앞으로 죽어라 우리가 공부할 것들입니다 ㅋㅋ
또한 ()안의 void 는 안적어도 무방합니다 즉
void main() = void main(void)
입니다.
자 여기서 함수의 구조에 대해 잠깐 설명을 하면
(프로그램의 구조가 아닙니다! 함수의 구조!)
우선 그럼 저 구성을 먼저 보도록 하죠
우선 저 원형은 바로
void main(void) 입니다.
---- ----(----)
1 2 3
1 : 리턴형입니다.
간단히 설명하자면 이 C는 여러가지 형식이 있습니다.
이 함수가 실행된 뒤, 그 결과값을 어떤 형식으로 이 함수를 호출한 프로그램에
전달해 줄 것인지 결정하는 인자 입니다. 예를 들어
이 함수가 끝난 뒤 정수 1이 전달될지 실수 1.0이 전달될지 결정하는 겁니다.
(나름 중요한 의미를 띄고 있습니다..^^;)
2 : 이름입니다.
저건 메인함수지만, 실제로 프로그램은 여러 개의 함수로 구성이 됩니다.
사람에게도 똘똘이 철수 영희 라는 이름이 있듯이
이 함수에게도 이름이 있고 이 함수 이름이 계속 쓰이게 됩니다.
3 : 여기에 매개변수 리스트를 적습니다~!
매개변수 리스트란 다른 함수에서 값을 가져올때 사용되는
변수...(맞나요? 틀리면 지적해주세요~ ^^;;)입니다!
뭐 예를 들어
int add(int x, int y)
이런식으로 쓰입니다~
int란 이 함수의 결과 값을 정수형으로 보내주겠다는 말이고
add는 이 함수의 이름입니다 앞으로 add 라는 이름을 지니게 됩니다.
int x, int y 는 다른 함수에서 가져오는 2개의 값을 지정해주는 겁니다.
(지금 당장 모르셔도 됩니다~ 처음엔 거의 안써요 ^^)
헉헉....
3) {..... } 안의 int a;
바로 변수 입니다.
앞의 int는 변수형을 의미합니다.
뒤에 계속 하겠지만 변수형도 여러가지가 있습니다.
잘 선택해서 사용해야 해요
a는 변수 이름입니다.
이건 그냥 사용자 입맛에 맞도록 잘 결정해서 사용하시면 됩니다.
이 변수는 한번에 여러개도 지정이 가능합니다. 예를 들어
int a, b, c, d, e, f; 이런식으로 ,(쉼표)로 구분해서 사용하시면 됩니다.
그리고 마지막엔 언제나 ;(세미콜론)을 붙여주는 거, 잊지마세요!
4) a=10;
변수에 값을 지정하는 문구입니다.
이제 a는 10이라는 값을 지니게 되었군요
//
여기서 포인트!
굳이
int a;
a= 10;
이라고 적을 필요는 없습니다.
그냥
int a=10; 이라고 적어도 상관은 없어요~
//
5) printf("a는 %d 입니다", a);
출력함수입니다. (이 출력함수에 대해서는 좀있다 다시 다루도록 하겠습니다.)
자 그럼 위의 내용은 다 해석했네요;;;;
그러나 아직 많이 설명 안한 부분이 있는데
가장 큰 것으로 저 함수 { 2)번 } 부분입니다.
사실 함수 부분은 매우 중요합니다.
나중에 외부함수를 할때 좀더 자세히 다루도록 하죠!!!!
2) 변수의 종류
변수의 종류로는 우선
C의 자료형은 크게
void 스칼라형 포인터형 혼합형
4가지가 있습니다.
이 중 void는 아무 속성을 가지지 않은 것으로
이 함수가 다른 함수에게 아무런 값도 전달해 주지 않을때 사용됩니다!
(의미만 기억해 두세요!)
스칼라는 또다시
이런 식으로 나뉜답니다..(그림이 허접해서 죄송해요! ㅋㅋ)
int 는 정수형입니다.
즉 2, 3, 4, 5 라는 정수만 사용하며
31비트까지. 즉 -2^31 ~ 2^31-1 까지 정수를 사용합니다.
float, double 은 실수형입니다.
즉 1.0, 2.0 이라는 실수만 사용하며 각 OS마다 표현가능한 수가 다릅니다~
char는 문자형으로 문자값을 지닙니다.
각 문자마다 1바이트를 가지고 아스키코드를 사용합니다.
그리고 각 변수 앞엔 unsigned, short, long을 붙일수 있는데
unsigned는 다음 강의인 숫자에 자세히 다룰내용이고
short, long은 IBM 컴퓨터에선 아무 영향을 못 끼칩니다~ 때문에 생략! ㅋ
(long은 그 변수의 2배 바이트, 2배수 사용,
short는 그 변수보다 작은 바이트 작은수 사용입니다.)
포인터 형은 바로 " * " 저 별의 힘입니다..ㅋㅋ
포인터와 혼합형은 나중에 정말 빡씨게 배웁니다! 우선 스칼라로만 만족합시다! ㅋㅋ
근데 이 변수는 왜 나누느냐...어떻게 쓰이느냐....
이게 궁금하실텐데요
이 변수는 사용하는 바이트가 다릅니다~
사실 1~2개의 변수를 사용하는게 아니라 수백, 수천개의 변수를 사용하는
대형 프로그램은 이런 변수하나하나로 크기에 영향을 받는다고 합니다.
그래서~ 이 변수를 사용하는 겁니다..ㅋㅋ
따라서 그 바이트를 열거 해보면
int : 2 바이트
float : 4바이트
double : 8바이트
char : 1바이트 (영어 한문자)
여담으로 저는 int : 인트, float : 플로트, double : 더블 char : 캐릭터 형으로 읽습니다.
다른 분들은 어캐 읽으셧나요? ^^ ㅋ
자 이번주는 여기까지......
너무 느리죠? ㅠㅠ
다음엔 좀더 빠르게 진행해보도록 하겠습니다.
아참! 이제 다음엔 각 진수와 바이트에 대해 공부할 생각이니까요~
슬슬 책을 한권 구입하셔서 하는 것도 좋을 것 같습니다
추천은 나중에~ 천천히..ㅋㅋ