C 프로그램의기본
목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2
예제 2-1 : 첫번째 C 프로그램 3
2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4
2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석 한줄로된문장의일부분을주석으로만들수도있고, 여러줄에걸쳐서주석을작성할수도있다. 5
첫번째 C 프로그램 주석 // 을이용한한줄주석 C++ 주석이지만, 대부분의 C/C++ 컴파일러에서지원됨 // 부터해당줄의끝까지를주석으로간주 프로그램코드중특정문장이수행되지않도록하려면 주석처리한다. 2 장. C 프로그램시작하기 6
2.1.1 주석 주석사용시주의사항 /* 과 */ 을이용한주석은중첩해사용할수없다. // 로된주석은 /* */ 로된주석안에포함할수있다. 가독성 (readability) 알아보기쉬운코드가좋은코드다 ~! 7
(1) 함수 (Function) 프로그램에서처리할내용을모아두는기본단위 C 프로그램은하나이상의함수로구성된다. 함수를만들때는함수의리턴형, 함수이름, 매개변수가필요. 함수가처리할내용은 { } 안에써준다. 함수는문장 (statement) 들로구성된다 8
문장 (statement) C 프로그램을이루는기본단위 각문장은세미콜론 (;) 으로끝난다. ~ 문 : 선언문, 입력문, 출력문, 조건문, 반복문등 9
콘솔프로그램과 main 함수 콘솔프로그램에는반드시 main 함수가필요하다. 10
함수의구성요소 함수를만들때는 리턴형, 함수이름, 매개변수가필요하다. 11
함수의호출및리턴과정 함수가호출되면함수안에있는문장들이순차적으로수행된다. 함수의끝 ( } ) 을만나거나리턴문을만나면, 함수를호출한곳으로되돌아간다. 리턴문에서 return 다음에리턴할값을써준다. 자세한내용은 6 장에서 ~! 12
(2) 진입점함수 (entry-point function) C 프로그램이처음시작될때호출되는함수 main 함수는콘솔프로그램의진입점함수이다. 운영체계 C 프로그램에는 main 함수가반드시필요하다. 13
main 함수리턴형 * 리턴형이 void 인 main 함수는 C 표준이아니다. : int main (void) 를사용하는것이좋다. void main(void) // 리턴형이 void 인 main 함수는 C 표준이아님! { } main 함수는매개변수가없으므로 void 를지정하거나생략할수있다. int main ( ) // 매개변수에서 void 를생략할수있다. { return 0; } 14
main 함수의리턴값 프로그램의종료코드 (exit code) 를리턴한다. main 함수의리턴값은운영체제로전달 0 이면정상종료이고, 0 이아니면비정상종료 main 함수의 return 문은생략할수있다. 프로그램종료시 0 리턴 15
(3) 들여쓰기 알아보기쉽도록한줄에한문장씩작성한다. 블록 (block) : { } 로묶인문장들 Visual Studio 의들여쓰기단축키 Ctrl+K, Ctrl+D 또는블록선택후 Ctrl+K, Ctrl+F 16
(1) 입출력 콘솔프로그램 콘솔 ( 명령프롬프트 ) 에서실행되는프로그램 키보드로부터입력을받아서처리결과를콘솔에텍스트로출력 17
(2) 입출력라이브러리를사용하기위한준비 입출력라이브러리가제공하는표준입출력함수를사용하려면 <stdio.h> 포함해야함. 헤더파일 (.h) 라이브러리함수의이름, 리턴형, 매개변수에대한정보를담고있는파일 라이브러리 (Library) 자주사용되는기능을미리준비해둔것 컴파일된오브젝트코드를묶어놓은.lib 확장자를가진바이너리파일 (Binary File) 18
(2) 입출력라이브러리를사용하기위한준비 #include 이용 소스파일에헤더파일포함시킴 전 ( 前 ) 처리기가컴파일전에헤더파일내용을소스파일로복사 라이브러리함수사용가능 * 전처리기가처리하는문장은 # 으로시작 ~! 19
(3) 콘솔출력 콘솔에텍스트를출력하려면 printf 함수를이용한다. 출력할내용을 " 로묶어서 printf 함수의 ( ) 안에써준다. 문자열안에줄바꿈문자 ( \n ) 함께사용 20
예제 2-1 : 첫번째 C 프로그램 21
2.1.1 변수 ( Chapter 3 데이터형과변수 ) 어떤값을저장하기위한공간 변수를사용하려면변수명과데이터형 (data type) 이필요. 값을저장하려면먼저메모리에공간을확보하기위해서 변수의데이터형이필요하고, 메모리에접근하려면변수의이름이필요 * 메모리 (Memory) 연속된바이트 (byte) 의모임 메모리에접근할때는 1 바이트단위로접근 저장할값의형식에따라서사용되는공간의크기가결정된다. 22
(2) 변수의선언 변수는먼저선언을한후에사용해야한다. 23
(2) 변수의선언 변수를선언할때는변수의데이터형과변수의이름필요 문자형변수 : char 형, 정수형변수 : int 형, 실수형변수 : float 형으로선언. 변수의이름은영문자와숫자, 밑줄기호 ( _ ) 사용해만듬 변수의이름중간에는빈칸을사용할수없다. 24
변수는선언후사용해야한다. 25
(3) 변수의사용 변수의사용 변수명을이용하면변수의값을읽어올수있다. 변수에값을대입하려면 = 을이용한다. 26
2.2.2 printf 함수 형식 : printf( 형식문자열, 출력할값 ); 사용예 : printf( %d, num); printf( %x, num); printf( %f, x); printf( %c, ch); 27
(1) printf 함수의형식문자열 28
printf 함수의형식문자열 서식지정자의개수와출력할값의개수가일치해야한다. 16 진수정수출력 * 0x, 0X : 16 진수를나타내는접두사 29
예제 2-2 : 형식문자열을이용해서출력하기 (1/2) 30
예제 2-2 : 형식문자열을이용해서출력하기 (2/2) 31
예제 2-3 : 문자폭지정하기 32
(3) 정밀도지정 정밀도지정 실수의정밀도 : 소수점이하자릿수 정수의정밀도 : 출력할숫자의자릿수 33
예제 2-4 : 정밀도지정하기 34
2.2.3 scanf 함수 사용자가키보드로입력한값을읽어올때 입출력라이브러리함수인 scanf 함수사용 * 변수명앞에 & 를지정할것! ( 자세한것은 8 장포인터에서 ~) 35
표 2-3 scanf 함수의형식문자열 36
예제 2-5 : 입력받은 10 진수정수를 16 진수로변환해서출력하기 37
scanf 함수의형식문자열 문자배열에입력받을때는 & 를지정하지않는다. 서식지정자를여러개사용할수도있다. 서식지정자와입력받을변수의개수가같아야한다. scanf("%s %d %c", name, &age, &gender); 3 개 3 개
scanf 함수의형식문자열 실수형변수입력 %f : float 입력 %lf : double 입력 형이일치하지않으면컴파일에러발생! * Printf 로실수값을출력할때는상관없다. => %f, %lf 둘다사용가능.
예제 2-6 : 여러개의서식지정자사용하기 40
형식문자열에서사용된공백문자의의미 서식지정자를여러개지정할때, 빈칸을함께사용하는것이좋다. => 이전입력이후의공백을모두무시하고다음입력을읽어오게한다. 41