남들이 안해본것을 해서 궁극적인 지식의 완성을 목표로 하는 블로그입니다. 제품리뷰 , IT, 프로그래밍 관련글을 포스팅합니다.
// By File (pgh268400) #include <stdio.h> int main(void){ printf("Hello C World!!\n"); return 0; }
안녕하세요 파일입니다. 항상 프로그래밍 언어에서 시작하는 것은 출력을 해보는 건데요. 우선 저번 소스코드부터
시작하겠습니다. 저번에 실행을 하면 Hello World!! 가 출력되는 것이 나왔는데 기억나시나요?
저번에는 아무것도 모르고 따라만 했지만 오늘은 이걸 상세하게 알아보겠습니다.
#include <stdio.h>
우선 시작은 요렇게 시작하네요.
우선 include라는 영어는 대부분 아시겠지만
무엇을 포함하다, 포함시키다는 의미죠?
한마디로 stdio.h 를 포함시킨다고 할 수 있겠는데요. 여기에 특수문자 #이 들어갔는데 이런 것을 전처리기라고 합니다.
컴파일러가 컴파일을 하기 전에 먼저 처리하라는 의미입니다.
stdio는 Standard Input Output(표준 입출력)의 줄임말입니다. 즉 stdio.h라는 헤더 파일을 끌어오는 겁니다.
C언어에서 사용에 편하라고 함수들을 구현해놨는데 그것들이 헤더 파일에 묶여서 정의되어있고
stdio.h 에는 printf( ), scanf( ) 등이 있어서 이것을 사용할 수 있는 겁니다.
C언어에 존재하는 여러 헤더 파일들
int main(void){ printf("Hello C World!!\n"); return 0; }
그리고 main( )이라는 함수를 정의했습니다.
함수라.. 기억이 날듯 말듯 합니다
함수는 초등학교 때도 배웠을 건데요. f(x) = x + 2 라던지...
예를 들면 상자에 과자 3개를 넣었는데 5개가 나왔다던지 하는 겁니다.
함수에는 입력값(INPUT)이 있고 안에서 처리하는 식(FUNCTION)과 출력 값(OUTPUT)이 있습니다.
여기서 main 은 함수의 이름으로 프로그램 실행 시 이름 그대로 맨 처음에 실행되고 맨 나중에 종료되게 됩니다.
void라고 적힌 곳은 함수가 받는 입력값(argument)입니다.
void라는 말 그대로 입력받는 값이 없다는 겁니다.
저희 목적은 print로 출력만 하는 거니깐요.
void 이므로 쓰지 않아도 정상 작동합니다.
앞에 int (정수)는 자료형인데 함수 출력 값(반환 값)의 형태를 지정합니다.
http://blog.naver.com/PostView.nhn?blogId=sharonichoya&logNo=220339079484&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=false&from=section
C언어에서의 자료형 표입니다.
이것을 다 암기하거나 이해하실 필요는 없고
필요할 때마다 참고하시면 됩니다.
자료형에 관해선 나중에 변수 강의 때 한 번 더 쓰겠습니다.
그리고 내부에서 처리하는 식이 바로 "Hello World!!"를 출력하는 부분입니다.
대괄호로 묶은걸 볼 수 있는데 main 함수가 작동 시에 저 대괄호 내부의 내용이 실행됩니다.
그러면 내부에서 처리하는 소스를 보겠습니다
printf("Hello C World!!\n"); return 0;
printf 함수는 출력할 때 사용하는 함수입니다. stdio.h 에 정의되어 있습니다.
저렇게 문자열을 출력할 때는 "(큰 따옴표)를 사용해 묶어서 출력합니다.
작은따옴표는 사용할 수 없습니다. (일부 언어에서는 인정함 ex) python )
\n 은 개행 문자로 New Line의 약자입니다. 한 줄 띄라는 의미겠죠?
그리고 ; 를 세미콜론이라고 하는데 우리가 글을 쓰면서 마침표를 찍듯 C언어에서의 마침표입니다.
그리고 마지막으로 프로그램이 끝나면 컴퓨터는 이것을 모르니깐 알려줘야 합니다.
return의 기능은 2가지입니다. 1. 특정값을 반환함 2. 함수의 종료를 알림
이 경우에는 2번 케이스가 되겠죠?
0을 반환함으로써 main ( ) 함수의 끝을 알립니다.
0은 False, 1은 True 이므로 main 함수가 false 가 되어 종료가 되는 겁니다.
숫자를 반환하는 이유는 아까 함수 반환 값의 형태를 int로 지정해서 그렇습니다
그리고 설명하진 않았지만
// By File (pgh268400)
이 부분은 주석입니다
보통 프로그램에서 부연 설명할 때 쓰는데
// By File (pgh268400) #include <stdio.h> int main(){ /* 파일의 C언어 강의 전체 주석 */ printf("Hello World!!"); return 0; }
// By File (pgh268400) #include <stdio.h> int main(){ printf("Hello World!!"); //부분 주석 return 0 }
전체 주석 시엔 /* */ 로 사용하고 부분 주석 시엔 // 로 사용합니다.
프로그램을 많이 만들다 보면 뭐가 뭔지 모르는데 이럴 때 달아둔 주석이 크게 도움이 됩니다.
벌써 과부하가 올 거 같다고요?
정상입니다. 처음 배우는 건 뭐든 어려우니깐요
뇌는 많이 쓸수록 노화에 저항하는 능력이 강해진다고 합니다.
힘들어도 더 파이팅하고 따라가 봅시다!!
// By File (pgh268400) #include <stdio.h> int main(){ printf("출력 연습해볼까\n\n"); //개행 문자를 통한 2줄 띄기 printf("\\ 역슬래시 출력하기\n"); printf("큰따옴표 : \" \n"); printf("\작은따옴표 : \'"); return 0; }
출력하다 보면 의문이 생길 겁니다
문자열을 묶을 때는 "를 사용한다고 했는데 만약에"를 출력하고 싶으면 어떻게 해야 하는 거지?
printf로 그대로 출력하면 될까? 하고 해 봤으나 역시 오류가 납니다.
이런 문자를 출력하기 위해 \(역슬래시) 기호를 사용하는데요
위의 표와 소스코드를 참고하며 직접 출력하는 연습을 해보세요 ^^
아마 이 중에서 사용하는 건
역시 이 표는 암기할 필요 없고 모를 때마다 여러 번 반복해서 익히면 됩니다
출력할 때 오류 나거나 겹치는 무언가가 있다면 \기호를 사용해서 표기하면 됩니다.
아마 이 중에서 사용할 건 표에서 하이라이팅 해둔 부분 정도 일 겁니다..
이제 문자열도 마스터했겠다.. 숫자를 출력해봅시다!
일단 간단한 덧셈을 먼저 해볼까요?
3+5 를 해볼겸.. 소스코드를 작성했는데
#include <stdio.h> int main(){ printf(3+5); return 0; }
애석하게도.. 작동하지 않네요 왜그럴까요? C언어에서는 이런식으로 바로 계산해서 출력할 수 없고
서식문자란 것을 사용합니다.
printf( ) 의 이름이 왜 print( ) 가 아니고 printf( ) 인지 궁금해 하실분이 있을건데요 f는 Formatted 의 약자로 포맷,서식을 나타내는데 서식문자를 사용해 다양한 값들을 출력 할 수 있습니다.
예제를 통해 보겠습니다
#include <stdio.h> int main(){ printf("3+5는 ? = %d", 3+5); return 0; } 3+5는 ? = 8 -------------------------------- Process exited after 0.02388 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . .
%d 라는 서식문자를 이용해 3+5 를 표현했군요! 문자라는 이름그대로 마치 문자처럼 적고 뒤에 %d 의 값을
지정해 줬습니다. %d는 10진수 정수(+, - 둘다 가능) 를 표현할때 쓰는 서식문자 입니다
서식문자의 종류입니다. 역시 여러번 보면서 익혀두세요.
#include <stdio.h> int main(){ printf("%d + %d = %d\n", 12,5,12+5); printf("%d - %d = %d\n", 20,5,20-5); printf("%d * %d = %d\n", 9,5,9*5); printf("%d / %d = %d\n", 11,5,11/5); //몫구하기 -- 소숫점을 사용하지 않음 printf("%d / %d = %d", 11,5,11%5); //나머지 구하기 return 0; } 12 + 5 = 17 20 - 5 = 15 9 * 5 = 45 11 / 5 = 2 11 / 5 = 1 -------------------------------- Process exited after 0.02345 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . .
사칙연산 모두 가능합니다.
알아둘점은 나눗셈시 나머지는 %기호 몫은 / 기호 입니다
나눗셈시 11을 5로 나누면 정수에선 2이상 나누지 못하므로 몫이 나옵니다.
#include <stdio.h> int main(){ printf("10진수 : %d, 16진수 : %x, 8진수 정수 : %o\n", 30,30,30); printf("10진수 : %d, 16진수 : %x, 8진수 정수 : %o", -50,-50,-50); return 0; } 10진수 : 30, 16진수 : 1e, 8진수 정수 : 36 10진수 : -50, 16진수 : ffffffce, 8진수 정수 : 37777777716 -------------------------------- Process exited after 0.02567 seconds with return value 0 계속하려면 아무 키나 누르십시오 . . .
아까 위표에서 16진수는 %x로 , 8진수는 %o로 표기한다고 했습니다.
음수를 표기해보면 10진수는 표현이 가능하나 16진수와 8진수에선 쓰레기값이 나옵니다.
즉 양수만 표현 가능합니다.
[C언어 강좌] #2-1 printf 로 마음대로 출력하기
안녕하세요 파일입니다. 항상 프로그래밍 언어에서 시작하는 것은 출력을 해보는 건데요. 우선 저번 소스코드부터
시작하겠습니다. 저번에 실행을 하면 Hello World!! 가 출력되는 것이 나왔는데 기억나시나요?
저번에는 아무것도 모르고 따라만 했지만 오늘은 이걸 상세하게 알아보겠습니다.
전처리기
우선 시작은 요렇게 시작하네요.
우선 include라는 영어는 대부분 아시겠지만
1. 포함하다 2. ~을 (~에) 포함시키다
무엇을 포함하다, 포함시키다는 의미죠?
한마디로 stdio.h 를 포함시킨다고 할 수 있겠는데요. 여기에 특수문자 #이 들어갔는데 이런 것을 전처리기라고 합니다.
컴파일러가 컴파일을 하기 전에 먼저 처리하라는 의미입니다.
stdio는 Standard Input Output(표준 입출력)의 줄임말입니다. 즉 stdio.h라는 헤더 파일을 끌어오는 겁니다.
C언어에서 사용에 편하라고 함수들을 구현해놨는데 그것들이 헤더 파일에 묶여서 정의되어있고
stdio.h 에는 printf( ), scanf( ) 등이 있어서 이것을 사용할 수 있는 겁니다.
메인함수
그리고 main( )이라는 함수를 정의했습니다.
함수는 초등학교 때도 배웠을 건데요. f(x) = x + 2 라던지...
예를 들면 상자에 과자 3개를 넣었는데 5개가 나왔다던지 하는 겁니다.
함수에는 입력값(INPUT)이 있고 안에서 처리하는 식(FUNCTION)과 출력 값(OUTPUT)이 있습니다.
여기서 main 은 함수의 이름으로 프로그램 실행 시 이름 그대로 맨 처음에 실행되고 맨 나중에 종료되게 됩니다.
void라고 적힌 곳은 함수가 받는 입력값(argument)입니다.
void라는 말 그대로 입력받는 값이 없다는 겁니다.
저희 목적은 print로 출력만 하는 거니깐요.
void 이므로 쓰지 않아도 정상 작동합니다.
앞에 int (정수)는 자료형인데 함수 출력 값(반환 값)의 형태를 지정합니다.
C언어에서의 자료형 표입니다.
이것을 다 암기하거나 이해하실 필요는 없고
필요할 때마다 참고하시면 됩니다.
자료형에 관해선 나중에 변수 강의 때 한 번 더 쓰겠습니다.
함수처리
그리고 내부에서 처리하는 식이 바로 "Hello World!!"를 출력하는 부분입니다.
대괄호로 묶은걸 볼 수 있는데 main 함수가 작동 시에 저 대괄호 내부의 내용이 실행됩니다.
그러면 내부에서 처리하는 소스를 보겠습니다
printf 함수는 출력할 때 사용하는 함수입니다. stdio.h 에 정의되어 있습니다.
저렇게 문자열을 출력할 때는 "(큰 따옴표)를 사용해 묶어서 출력합니다.
작은따옴표는 사용할 수 없습니다. (일부 언어에서는 인정함 ex) python )
\n 은 개행 문자로 New Line의 약자입니다. 한 줄 띄라는 의미겠죠?
그리고 ; 를 세미콜론이라고 하는데 우리가 글을 쓰면서 마침표를 찍듯 C언어에서의 마침표입니다.
그리고 마지막으로 프로그램이 끝나면 컴퓨터는 이것을 모르니깐 알려줘야 합니다.
return의 기능은 2가지입니다. 1. 특정값을 반환함 2. 함수의 종료를 알림
이 경우에는 2번 케이스가 되겠죠?
0을 반환함으로써 main ( ) 함수의 끝을 알립니다.
0은 False, 1은 True 이므로 main 함수가 false 가 되어 종료가 되는 겁니다.
숫자를 반환하는 이유는 아까 함수 반환 값의 형태를 int로 지정해서 그렇습니다
주석
그리고 설명하진 않았지만
이 부분은 주석입니다
보통 프로그램에서 부연 설명할 때 쓰는데
전체 주석 시엔 /* */ 로 사용하고 부분 주석 시엔 // 로 사용합니다.
프로그램을 많이 만들다 보면 뭐가 뭔지 모르는데 이럴 때 달아둔 주석이 크게 도움이 됩니다.
벌써 과부하가 올 거 같다고요?
정상입니다. 처음 배우는 건 뭐든 어려우니깐요
뇌는 많이 쓸수록 노화에 저항하는 능력이 강해진다고 합니다.
힘들어도 더 파이팅하고 따라가 봅시다!!
특수문자 처리하기
출력하다 보면 의문이 생길 겁니다
문자열을 묶을 때는 "를 사용한다고 했는데 만약에"를 출력하고 싶으면 어떻게 해야 하는 거지?
printf로 그대로 출력하면 될까? 하고 해 봤으나 역시 오류가 납니다.
이런 문자를 출력하기 위해 \(역슬래시) 기호를 사용하는데요
위의 표와 소스코드를 참고하며 직접 출력하는 연습을 해보세요 ^^
아마 이 중에서 사용하는 건
역시 이 표는 암기할 필요 없고 모를 때마다 여러 번 반복해서 익히면 됩니다
출력할 때 오류 나거나 겹치는 무언가가 있다면 \기호를 사용해서 표기하면 됩니다.
아마 이 중에서 사용할 건 표에서 하이라이팅 해둔 부분 정도 일 겁니다..
서식문자 처리하기
이제 문자열도 마스터했겠다.. 숫자를 출력해봅시다!
일단 간단한 덧셈을 먼저 해볼까요?
3+5 를 해볼겸.. 소스코드를 작성했는데
애석하게도.. 작동하지 않네요 왜그럴까요? C언어에서는 이런식으로 바로 계산해서 출력할 수 없고
서식문자란 것을 사용합니다.
printf( ) 의 이름이 왜 print( ) 가 아니고 printf( ) 인지 궁금해 하실분이 있을건데요 f는 Formatted 의 약자로 포맷,서식을 나타내는데 서식문자를 사용해 다양한 값들을 출력 할 수 있습니다.
예제를 통해 보겠습니다
%d 라는 서식문자를 이용해 3+5 를 표현했군요! 문자라는 이름그대로 마치 문자처럼 적고 뒤에 %d 의 값을
지정해 줬습니다. %d는 10진수 정수(+, - 둘다 가능) 를 표현할때 쓰는 서식문자 입니다
서식문자의 종류입니다. 역시 여러번 보면서 익혀두세요.
사칙연산 모두 가능합니다.
알아둘점은 나눗셈시 나머지는 %기호 몫은 / 기호 입니다
나눗셈시 11을 5로 나누면 정수에선 2이상 나누지 못하므로 몫이 나옵니다.
아까 위표에서 16진수는 %x로 , 8진수는 %o로 표기한다고 했습니다.
음수를 표기해보면 10진수는 표현이 가능하나 16진수와 8진수에선 쓰레기값이 나옵니다.
즉 양수만 표현 가능합니다.
2편에서 계속됩니다....
'프로그래밍 강좌 > C' 카테고리의 다른 글
COMMENT WRITE