실버즈 레일리­ MYPI

실버즈 레일리­
접속 : 282   Lv. 15

Category

Profile

Counter

  • 오늘 : 9 명
  • 전체 : 7004 명
  • Mypi Ver. 0.3.1 β
[C언어] C언어의 기초 - 2.Welcome to Hell World Of C (6) 2011/09/03 PM 11:05
제블로그에 아무도 않와서 피드백목적으로 마이피에 올립니다.허으어엉













Welcome to Hell World Of C

문법이 이상한것 너의 착각이다.


보통 프로그래밍언어랑 일반 언어을 배울때  기본적으로 "안녕"이라는 레파토리가 있다.

일반적인 생황에선 

hello! 

hi! 

I'm fine and you?

I'm ok.

이런것?


그럼 C에서는 어떻게 "hello"표현하는지 일단보자.




 #include<stdio.h>


int main(void)

{

printf("Hello World.\n");

return 0;

}


먼저 

 #include<stdio.h>

먼지 보자 

include는 "포함하다"는뜻을 가지고있다.무엇을 

무엇을?"stdio.h"라는 헤드파일을 포함한다는 것을..

stdio.h?

Standard -nput/Output library(표준 입출력 라이브러리)의 약어로써, 

C 언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 형의 입출력 함수가 포함된 헤더 파일이다.

그러니 #include<stdio.h>

stdio.h라는 표준 입출력 라이브러리 헤더파일을 포함하는 c파일에 포함시킨다는 뜻한다.

그냥 사용한다고 생각 해도 된다.

그럼 다른 헤더 파일을 사용해도 되는가?

된다. 만들어서 헤더 파일을 쓰던가  다른 라이브러리 헤더파일을 써도 된다.

이렇게

#include<stdio.h>

#include<stdlib.h>


int main(void)

{

printf("Hello World.\n");

system("pause");

return 0;

}

그러나 헤당 C파일이 메인에 해당할경우 반드시"  #include<stdio.h> "은 있어야 한다.



int main(void

실질적인 프로그램이 시작되는 곳이다. 정식명칙은 메인 함수이다.일단  함수는 나중에 설명할테니 대충넘어가자.

int 는 정수뜻하는 integer 앞머리에서 따온것이다.말그대로 정수형이라는 것이다.

main()는 가장 먼저 호출되는 함수을 뜻한다. 이것없으면 실행이 않된다.

void는 전달인자인데......void뜻이 빈공간뜻한다..어라? 이것도 나중에 설명할테니 대충넘어가자.

해석하면 정수형 main()을 호출한다는 것으로 해석이 된다.


{}

중괄호인 { 와 } 은 함수의 몸체나 내부적이 구분구로 뜻한다.C소스안에 간혹 없는 경우은 있지만 필이 있면 에러가 발생이 나지않고 간결해서 보기 쉬워지기때문에 필히 필요한 구분구이다. 



printf();

입출력 함수라이브러리에서 가장많이쓰는 함수이다.

printf()는 출력 함수이다. 가장기본되는 것이라서 말이필요없다.이것을 사용은 대충 이렇다.


printf("1번 개돌입니다.");//문자나 숫자을 출력하때는 이렇게 표현 

printf("%d");//입력된 정수을 출력(이것은 나중에 설명)

printf("%c");//입력된 문자을 출력(나중에 설명)

이렇게 문자나 숫자을 같은 것을 출력을 할때 반드시""안에다가 입력을 해야된다.



;

세미콜론은 C에선 그라인이 하나의 C명령문(Statement)임을 나타낸다.다른언어와 달리 분리자나

끝맺음을 의미하지 않다. ;과;은 다르다 ;과은



return 0;

돌려준다.무엇을? 0을응?

이렇게 해석 하면된다.아까 void라는 전달인자라는것 알것이다. 이것을 받아서 돌려준는 역활을 하는것이다.근데 void는 비었다고 뜻한다. 결국 전달인자는 없다  .안돌려주어도 된다는 것이다 .

근데 왜있을까?

main()함수가 int 형 선언 되었기 때문이다.

나중에 설명하겠지만 int형이나 double같은 함수로 선언 되면 전달인자을 돌려주어야한다.

다음 예제을 대충보자. 



#include<stdio.h>


void m(void)

{

printf("Hello World.\n");

}

int main(void)

{

m();

return 0;

}

 

#include<stdio.h>


int n(int n)

{

return n++;

}


int main(void)

{

int m = 0;

n(m);

printf("%d\n",m);

return 0;

}



먼저 첫번째는 함수에서 돌려주거나 전달받는 인자 없는 경우 이다.

그럴경우 에는 void로 해서 함수로 선언 해주고 return을 않써주면된다.


두번째는  함수에서 돌려주거나 전달받는 인자 있는경우 

int n(int n)//전달

{

return n++;//돌려줌

}

이렇게  전달인자 받아 계산후  

int main(void)

{

int m = 0;

n(m);

printf("%d\n",m);

return 0;

}

메인에 돌려주면 된다. 


함수사용은 나중에 자세하게 말하겠지만 return이 대충 이런 역활을 한다는 것만 알아두었면 바램이다.



일단 오늘을 여기까지이고 다음에는 변수사용과 printf문을 좀더 자세하게 알아보자.




 









신고

 

Hugo Primozic    친구신청

....

kimo87    친구신청

;;열심히 볼게요 ㅋㅋ

NISS    친구신청

설명문이 읽는데 좀 어색한 느낌이 듭니다. 말이 자연스럽지 않다고 할까. 그거 때문에 내용에 집중이 안됩니다.

☆나르스★    친구신청

맨 아랫쪽 함수에서 '의도한' 출력값이 1인가요? 0인가요? 0이었다면 딱히 잘못된게 없지만, 1이라면 m = n(m); 요렇게 해줘야 될거 같네요.

티벳여우와 개    친구신청

NISS//참조하겟습니다.
☆나르스★//제 코딩이 잘못됬습니다.--;;;전위해야 되는데...
후위증감 해버렸습니다.

☆나르스★    친구신청

함수 내에서 증가를 전위 증가로 바꿔주더라도, 저렇게 값을 인자로 전달하게 되면 n함수 내에서 값을 증가시켜주더라도 외부에서는 값이 바뀌지 않기때문에, 프린트 결과가 0이 나오게 됩니다.
X