02 C 프로그래밍기초 충남대학교이형주 1
C 프로그램구조 콘솔응용프로그램 2
프로그램실행순서 C 프로그램은여러함수의조합으로구성 함수란정해진규칙에의하여일련의작업을수행하는프로그램의단위 실행순서 main 함수는프로그램이실행되면가장먼저시작되는부분 모든함수내부에서는위에서아래로, 좌에서우로, 문장이위치한순서대로실행 3
전처리기 전처리기 (preprocessor) 미리처리하는프로그램으로, 컴파일러가일을하기전에먼저처리하는프로그램이라는의미 전처리명령어 #include 헤더파일 stdio.h 4
Comments 주석 주석은프로그램언어의문법과는관계없이프로그램을설명하는설명문을표현하기위한방법 원래 /* */ 로주석을이용, C++ 언어가나오면서 //.. 을추가 두가지방법 주석의시작부분인 / 와 * 사이, / 와 * 사이에공백이없어야함. 주석 // 은 // 이후부터그줄끝까지설명문을넣을수있음 중요성 적절한주석이없는프로그램은이해하기어렵고, 수정이어려움 주석은프로그램유지보수에매우중요하며, 따라서주석처리도기술이며, 적절한코드를작성하는것만큼중요 예제 2-1 5
들여쓰기 Indentation 집합기호 { } 로표현하는함수정의부분이나블록에서, 입력하는모든문장코드의시작을여러개의공백이나탭을이용하여여백을두고코딩하는방법 중요 들여쓰기는문법과는관련이없으나프로그램의이해를돕기위하여반드시필요한코딩방법 6
키워드 (Reserved Words) 키워드와식별자 키워드 (keyword) 는고유한문법적의미를갖는예약된단어 (Reserved Words) : 예약어 프로그램언어마다고유한키워드를갖음. 식별자 (Identifier) 프로그램작성을위하여사용자가직접정의하여사용하는여러단어 주로변수이름과함수이름 식별자작성규칙 예제 2-2 2 구성하는문자 : 영문대소문자 (A~Z, a~z), 숫자 (0~9), 밑줄 (_) 총 63 개 식별자의첫글자는숫자를이용불가능 대소문자는구별하며, 키워드는사용불가능 7
변수 변수선언 프로그램에서임시로자료값을저장할수있는저장장소 int countkeywords; // 자료유형변수이름 ; 8
변수의초기값 변수의초기화 변수 (variables) 는선언하면서그초기 ( 처음 ) 값을저장가능 변수는초기값이무엇이든항상마지막값만을저장 // 변수 count를 int로선언하면서값을 10으로저장 int count = 10; // 변수 count 값을 25로수정하여저장 count = 25; 같은자료유형의변수는여러개를한문장으로선언가능 같은자료유형의변수는선언하면서변수의초기값을저장 // 변수 a, b 를 int 로선언하면서초기값을저장하지않음 int a, b; // 변수 c, d 를 int 로선언하면서초기값으로각각 10 과 20 을저장 int c = 10, d = 20; 9
예제소스 declarations.c 자료유형 int 형변수 a 를선언한후값을저장하지않고출력 자료유형 short 형변수 b 를선언한후, 이변수에 32768 을초기값으로저장하여출력 실행 컴파일하면에러는발생하지않으나경고가발생 이를무시하고실행 자료유형 short 인변수 b 는출력값이음수인 32768 자료유형 short는자료를저장할수있는공간크기가작아서정수 32768 을저장할수없기때문 10
문장 토큰 컴퓨터에게명령을내리는기본단위 토큰 < 문장 < 블록 int year = 2004 ; // 문장 문장을이루는의미있는단어나기호를토큰 (token) 토큰중에서키워드나식별자, 연산자등을구별 토큰 int year 의미 정수자료형을의미하는키워드 변수이름인식별자 블록 = 대입연산자 2003 정수상수 ; 문장의종료를의미 함수를정의하거나여러개의문장을묶어하나의블록으로구성 집합기호인중괄호 { } 를이용 11
expressions 표현식 프로그램언어에서변수나상수, 연산자로구성된식을표현식 (expression) 표현식은항상결과 ( 반환 ) 값을갖음 표현식의예 표현식 (a=2, b=3) 결과값의미 a 2 변수하나로구성된표현식 10 10 상수하나로구성된표현식 11.3 11.3 실수상수로구성된표현식 a + 11.3 13.3 변수와상수와연산자로구성된표현식 a b * 5.0-13 변수와상수와연산자로구성된표현식 예제 2-4 12
상수 상수 (literals) 수학이나일상생활에서이용하는여러자료값이프로그램소스에서도그대로이용될수있는데, 이러한자료값을상수 (literals) 라함 진수의표현 상수종류 정수상수 실수상수 문자상수 예 10, 2, 017, 0x17, 0X18 3.14, 25.3, 32.5E23, 17.1e-3 A, +, \n 문자열상수 대한민국 2002 정수 017 은십진수 17 이아니라 8 진수 17 을의미 정수앞에 0x( 숫자 0과알파벳 x, 대문자 X도가능 ) 는그다음수는 16진수 소수의표현 상수 32.5E23, 17.1e-3 1e 은지수승을표현하는방식으로각각 32.5*10 23 과 17.1*10-3 을의미 문자와문자열 작은따옴표와큰따옴표로표현 13
대입문 대입연산자 (assignment operator) = 우측의값을좌측의저장장소에저장하라 라는의미 대입연산자인 = 의좌측에는항상저장공간인변수만이올수있음 잘못된문장 7=3+4; a + b = 5; b+1=1+b; 대입연산자인 = 의우측에는좌측의저장공간에저장할자료값을알수있는표현식이올수있음 예제 2-5 14
함수 printf 출력함수 문자열이나상수, 변수등을출력하려면함수 printf() 를사용 print formatted라는표현에서 print에 f를추가하여만든 C 라이브러리함수 함수 printf() 를사용하려면전처리기지시자인 #include <stdio.h> 를이용 예제 2-6 헤더파일 stdio.h 에는함수 printf() 를비롯한입출력함수의원형 (prototype) 과매크로 (macro) 가정의 printf( 제어문자열 (control string) ); printf( 제어문자열 (control string), 변수 ); printf( 제어문자열 (control string), 표현식 ); printf( 제어문자열 (control string), 변수나표현식, ); 15
printf() 의처음에 제어문자열 제어문자열 (control string) 만이있는경우 제어문자열에있는문자열을그대로출력 \n : 줄바꿈 \t : 수평탭 (horizontal tab) 제어문자열 16
표현식 printf() 는제어문자열다음에표현식이오는구문 표현식의출력 제어문자열콤마뒤의표현식에대응하는변환명세 (conversion specification) 가제어문자열내부에존재함 간단한변환명세는 % 와문자로구성 변환명세사용 %d %d d 는십진수 (decimal) 를의미 17
출력값종류에따라표현 변환명세 변환명세에는출력하려는값의종류에따라여러문자를이용한다. 즉변환명세는 % 와한문자나두개문자를조합해서출력값을표현 printf ( %d, 정수표현식 ); printf ( %c, 문자표현식 ); printf ( %f, 실수 (float) 표현식 ); printf ( %lf, 실수 (double) 표현식 ); 제어문자열에도출력하려는표현식값의종류에따라변환명세도순서적으로기술 제어문자열내부의변환명세와표현식에서, 그수와값의종류가서로순서대로일치해야함 printf ( %d %f, 정수표현식, 실수표현식 ); 18
프로그램목적 프로그래밍실습 정수와실수를저장하는변수를다루어보고, 저장된변수값을출력하는출력문등을이용한프로그램을작성 파일구성 프로그램저장장소 D:\source 폴더 작업공간이름 ch02 프로젝트이름 variables 소스파일이름 variables.c 19
노력없이이룰수있는것아무것도없다. 20