SlideShare a Scribd company logo
2016.08.16
1
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
2
C 프로그래밍 (1)
컴퓨터의 정보처리
키보드
하드디스크
파일
50 90
75 100
…….
프로그램
프로그램
입력
입력
출력
출력
100
75
90
화면
화면
평균 점수는
72점
평균 점수는
72점
50
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
3
C 프로그래밍 (1)
프로그램의 구성
C언어 프로그램
int main(int argc, char *argv[]){
……………
}
메인 루틴
전처리기라이브러리
특정부분에 특정
파일을 삽입
(#include stdio.h)
#include
특정 문자열을
특정 문자열로
치환
(#define PI 3.14)
#define
조건에 맞춰 특정
행을 삭제 또는
삽입
(#ifdef, #else, #end)
기타
#include <stdio.h>
전처리기
int factorial(int n) { …….. }
서브 루틴
printf(), scanf(), sin()
라이브러리
문자출력 함수
(printf("%dn", n))
printf()
키보드로부터 문자
입력 함수
(scanf("%d", &n))
scanf()
표준 라이브러리
함수, 사전 준비된
프로그램
(fprintf(), sin(), stoi())
기타
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
4
C 프로그래밍 (1)
컴파일(compile)과 어셈블(assemble)
stdio.h
math.h
Stdlib.h
헤더파일
printf()
scanf()
atoi()
라이브러리
C 프로그램 빌드(build)의 흐름
[넓은 의미의 컴파일]
C 소스 코드
전 처리된
C 소스 코드
어셈블리 언어
기계어
(오브젝트 코드)
기계어
(실행 가능한
프로그램)
프리 프로세스
컴파일 링크
어셈블
좁은 의미의
컴파일
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
5
라이브러리의 링크
링크 전
링크 후
printf()
scanf()
atoi()
라이브러리
링크 처리
fprintf 심볼 참조
printf 심볼 참조
atoi 심볼 참조
factorial 심볼 참조
main의 실체
factorial의 실체
fprintf 심볼 참조
printf 심볼 참조
atoi 심볼 참조
factorial 심볼 참조
factorial의 실체
fprintf의 실체
printf의 실체
atoi의 실체
fprintf의 실체
printf의 실체
atoi의 실체
factorial의 실체
심볼에 대응하는 함수를
라이브러리에서 가져와 연결한다.
C 프로그래밍 (1)
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
6
C 프로그래밍 (1)
일반 컴파일과 크로스 컴파일
일반 컴파일
(범용 컴퓨터)
소스 코드
실행 가능
프로그램
컴파일
로드
개발 머신과 타깃 머신이 동일
실행
크로스 컴파일
(임베디드 시스템)
소스 코드
실행 가능
프로그램
컴파일
개발 머신(PC 등)
실행 가능
프로그램
로드
실행
타깃 머신
(가전 제품 등)
전송
시스템에 따라서는 직접
불휘발성 메모리에서
실행하는 경우 있음
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
7
C 언어 코드의 기본 구조
C 프로그래밍 (1)
/* 화면으로 문자를 출력하는 코드 */
#include <stdio.h>
int main(void)
{
printf(“C 언어에 입문하신 걸 환영합니다!n”);
printf(“C 언어를 시작합니다!n”);
return 0;
}
주석문 : 코드에 대한 설명,
이 부분은 무시하고 처리
프로그램
본체
(main 함수)
main() 함수의 시작 부분
main() 함수의 종료 부분
문(statement) : 하나의 작은 처리(‘작업’) 단위로
마지막에 ; 세미콜론을 붙임
첫번째 실행
두번째 실행
문은 원칙적
으로 처음부터
순서대로 처리
들여쓰기
인클루드(include) : 헤더파일을 읽어 들임
# 기호 있는 줄 : 전처리기(preprocessor)가
다른 코드 번역하기 전에 읽어 들임
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
- 변수는 컴퓨터의 메모리를 이용해서
여러 가지 값을 기억하는 기능함
- A = 100 ,
변수 A 라는
메모리 공간에
100을 저장
변수의 정의, 특징
8
변수와 식별자
C 프로그래밍 (1)
메모리
0x9E 번지
0x9F 번지
0xA1 번지
0xA2 번지
변수 A
100
- 식별자(identifier) : 변수의 이름으로
사용할 수 있는 문자와 수치의 조합
< 식별자 작성 규칙 >
- 영문, 숫자, 밑줄 문자(underscore, _)
가운데 하나를 사용할 수 있고,
특수 기호를 포함할 수 없음
- 환경에 따라서 31 문자까지 제한
- C언어의 예약어(keyword) 사용 불가
- 숫자료 시작 불가
- 대문자와 소문자는 구별됨
< 잘못된 예 >
- 12a : 숫자로 시작하면 안됨
- return : 예약어는 사용 불가
- is-a : 특수 기호는 사용 불가
변수의 이름 = 식별자
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
9
변수의 데이터형(data type)
C 프로그래밍 (1)
종류 이름 크기 기억할 수 있는 값의 범위
문자형
char 1바이트 영문숫자 1문자 -128 ~ 127
unsigned char 1바이트 영문숫자 1문자(부호 없음) 0 ~ 255
정수형
short int 2바이트 정수 -32768 ~ 32767
unsigned short int 2바이트 정수(부호 없음) 0 ~ 65535
int 4바이트 정수 -2147483648 ~ 2147483647
unsigned int 4바이트 정수(부호 없음) 0 ~ 4294967295
long int 4바이트 장정수 -2147483648 ~ 2147483647
unsigned long int 4바이트 장정수(부호 없음) 0 ~ 4294967295
부동
소수점형
float 4바이트 단정밀도 부동소수점수 3.4E-38 ~ 3.4E+38
double 8바이트 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308
long double 16바이트
확장 배정밀도 부동소수점수
1.7E-308 ~ 1.7E+308
☞ 단, C언어의 기본형 크기는 개발환경에 따라 차이가 있을 수 있음
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
10
변수의 선언 및 이용
C 프로그래밍 (1)
- 변수 선언(declaration) : 변수 이름과
형을 결정하고 변수를 준비하는 작업
변수의 선언
- 변수 값의 대입(assignment) :
변수를 선언하고 변수에 특정한
값을 저장 또는 기억시키는 작업
변수 값의 대입
변수 선언 구문
Int num; -> int형 변수 num입니다.
char c; -> char형 변수 c입니다.
double db, dd; -> double형인 두 개의
변수 db와 dd입니다.
numint형
형 이름 식별자;
변수 값 대입 구문
…….
int num;
num = 3;
printf(“변수 num의 값은 %d입니다.n”,
num);
- 실행 화면 -
변수 num의 값은
3입니다.
변수 이름 = 식;
num
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
11
C 프로그래밍 (1)
#include <stdio.h>
int main(void) {
int num1 = 3;
int num2;
printf(“변수 num1의 값은 %d입니다. n”, num1 );
num1 = 5;
printf(“변수 num1의 값을 %d로 변경했습니다. n”, num1);
num2 = num1;
printf(“num1 값을 num2에 대입하여 num2 값은 %d입니다. n”, num2);
return 0;
}
Sample4.c 소스코드
변수 num1의 값은 3입니다.
변수 num1의 값을 5로 변경했습니다.
num1 값을 num2에 대입하여 num2 값은 5입니다.
Sample4 실행 화면
변수 초기화 및 값의 변경
변수 초기화 구문
형 이름 식별자 = 식;
num1 num1 num2
num1=5; num2=num1;num1=3;
변수 선언은 함수 블록 안에서 다
른 문보다 맨 위에 먼저 표기한다.
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
12
본 자료는 코딩인카페 1기 C&JAVA 기초과정
4회차 자료 중 일부를 발췌한 내용입니다.
< 참고자료 >
1. C를 배우기전에 반드시 알아야 할 것들, 무라야마 유키오, 루비페이퍼
2. 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴

More Related Content

PDF
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
PDF
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
PPTX
C++11
PDF
[C++ Korea 2nd Seminar] C++17 Key Features Summary
PDF
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
PDF
2013 C++ Study For Students #1
PDF
C++17 Key Features Summary - Ver 2
PDF
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
C++11
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
2013 C++ Study For Students #1
C++17 Key Features Summary - Ver 2
[C++ Korea] Effective Modern C++ Study, Item 1 - 3

What's hot (20)

PPTX
프로그래밍 및 실습 Chap2
PPTX
Refelction의 개념과 RTTR 라이브러리
PPT
C수업자료
PDF
6장 표현식 및 문장
PDF
프로그래밍 대회: C++11 이야기
PPTX
C++ 타입 추론
PPTX
Modern C++의 타입 추론과 람다, 컨셉
PDF
2 1. variables & data types
PDF
2. c언어의 기본
PPTX
Lua 문법 -함수
PPTX
Lua 문법
PDF
2.Startup JavaScript - 연산자
PPTX
[C++ korea] effective modern c++ study item8~10 정은식
PPTX
(학생용)+프로그래밍+및+실습 Chap4 3
PPTX
파이썬 스터디 2주차
PPTX
What’s new in c++11
PPTX
C++ 11 에 대해서 쉽게 알아봅시다 1부
PDF
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
PDF
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
PDF
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
프로그래밍 및 실습 Chap2
Refelction의 개념과 RTTR 라이브러리
C수업자료
6장 표현식 및 문장
프로그래밍 대회: C++11 이야기
C++ 타입 추론
Modern C++의 타입 추론과 람다, 컨셉
2 1. variables & data types
2. c언어의 기본
Lua 문법 -함수
Lua 문법
2.Startup JavaScript - 연산자
[C++ korea] effective modern c++ study item8~10 정은식
(학생용)+프로그래밍+및+실습 Chap4 3
파이썬 스터디 2주차
What’s new in c++11
C++ 11 에 대해서 쉽게 알아봅시다 1부
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
Ad

Viewers also liked (16)

DOCX
ประวัติ ภาษาซี 2
PPTX
Woking's canal quarter app Rhiannon Folan
PDF
El calostro herramienta para la cria de terneros
PDF
Cattle care standards (usa)
PPT
La porta de l'aire
PPTX
Project presentation
PDF
Bull buyers guide (uk)
PPTX
Daily routine
PPTX
Pilrim's progress FIRST PART
PPTX
E-Cigarettes: Promise, Peril, and Probabilistic Population Prediction
DOCX
Director research
PDF
Cri leite europeu 2015
PPTX
21st Century/Group Project
DOCX
Character Sketches
PDF
Safe cattle handling (new zealand)
PPT
iCloud
ประวัติ ภาษาซี 2
Woking's canal quarter app Rhiannon Folan
El calostro herramienta para la cria de terneros
Cattle care standards (usa)
La porta de l'aire
Project presentation
Bull buyers guide (uk)
Daily routine
Pilrim's progress FIRST PART
E-Cigarettes: Promise, Peril, and Probabilistic Population Prediction
Director research
Cri leite europeu 2015
21st Century/Group Project
Character Sketches
Safe cattle handling (new zealand)
iCloud
Ad

Similar to 코딩인카페 C&JAVA 기초과정 C프로그래밍(1) (20)

PDF
C언어 들어가기
PDF
C언어 들어가기
PPTX
[170327 1주차]C언어 A반
PDF
게임프로그래밍입문 3주차
PPTX
컴퓨터개론05
PDF
C Language For Arduino
PPTX
Ch.14 파일 강c v0.6
PDF
C 언어 스터디 01 - 기초
PDF
게임프로그래밍입문 2주차
PDF
학교에서 배우지 않는 C
PPT
C수업자료
PDF
2015 Kitel C 언어 강좌3
PPTX
Assembly 스터디 2
 
PPTX
Basic study 4회차
PDF
자료형과 값
PPTX
코딩클럽 왕초보 아두이노따라잡기 1탄
PPTX
C review
PPTX
G+ Summer C Study 20130703(1일차)
PPTX
System+os study 1
 
PPTX
G+ Summer C Study 20130709(3일차)
C언어 들어가기
C언어 들어가기
[170327 1주차]C언어 A반
게임프로그래밍입문 3주차
컴퓨터개론05
C Language For Arduino
Ch.14 파일 강c v0.6
C 언어 스터디 01 - 기초
게임프로그래밍입문 2주차
학교에서 배우지 않는 C
C수업자료
2015 Kitel C 언어 강좌3
Assembly 스터디 2
 
Basic study 4회차
자료형과 값
코딩클럽 왕초보 아두이노따라잡기 1탄
C review
G+ Summer C Study 20130703(1일차)
System+os study 1
 
G+ Summer C Study 20130709(3일차)

코딩인카페 C&JAVA 기초과정 C프로그래밍(1)

  • 2. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 2 C 프로그래밍 (1) 컴퓨터의 정보처리 키보드 하드디스크 파일 50 90 75 100 ……. 프로그램 프로그램 입력 입력 출력 출력 100 75 90 화면 화면 평균 점수는 72점 평균 점수는 72점 50
  • 3. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 3 C 프로그래밍 (1) 프로그램의 구성 C언어 프로그램 int main(int argc, char *argv[]){ …………… } 메인 루틴 전처리기라이브러리 특정부분에 특정 파일을 삽입 (#include stdio.h) #include 특정 문자열을 특정 문자열로 치환 (#define PI 3.14) #define 조건에 맞춰 특정 행을 삭제 또는 삽입 (#ifdef, #else, #end) 기타 #include <stdio.h> 전처리기 int factorial(int n) { …….. } 서브 루틴 printf(), scanf(), sin() 라이브러리 문자출력 함수 (printf("%dn", n)) printf() 키보드로부터 문자 입력 함수 (scanf("%d", &n)) scanf() 표준 라이브러리 함수, 사전 준비된 프로그램 (fprintf(), sin(), stoi()) 기타
  • 4. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 4 C 프로그래밍 (1) 컴파일(compile)과 어셈블(assemble) stdio.h math.h Stdlib.h 헤더파일 printf() scanf() atoi() 라이브러리 C 프로그램 빌드(build)의 흐름 [넓은 의미의 컴파일] C 소스 코드 전 처리된 C 소스 코드 어셈블리 언어 기계어 (오브젝트 코드) 기계어 (실행 가능한 프로그램) 프리 프로세스 컴파일 링크 어셈블 좁은 의미의 컴파일
  • 5. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 5 라이브러리의 링크 링크 전 링크 후 printf() scanf() atoi() 라이브러리 링크 처리 fprintf 심볼 참조 printf 심볼 참조 atoi 심볼 참조 factorial 심볼 참조 main의 실체 factorial의 실체 fprintf 심볼 참조 printf 심볼 참조 atoi 심볼 참조 factorial 심볼 참조 factorial의 실체 fprintf의 실체 printf의 실체 atoi의 실체 fprintf의 실체 printf의 실체 atoi의 실체 factorial의 실체 심볼에 대응하는 함수를 라이브러리에서 가져와 연결한다. C 프로그래밍 (1)
  • 6. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 6 C 프로그래밍 (1) 일반 컴파일과 크로스 컴파일 일반 컴파일 (범용 컴퓨터) 소스 코드 실행 가능 프로그램 컴파일 로드 개발 머신과 타깃 머신이 동일 실행 크로스 컴파일 (임베디드 시스템) 소스 코드 실행 가능 프로그램 컴파일 개발 머신(PC 등) 실행 가능 프로그램 로드 실행 타깃 머신 (가전 제품 등) 전송 시스템에 따라서는 직접 불휘발성 메모리에서 실행하는 경우 있음
  • 7. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 7 C 언어 코드의 기본 구조 C 프로그래밍 (1) /* 화면으로 문자를 출력하는 코드 */ #include <stdio.h> int main(void) { printf(“C 언어에 입문하신 걸 환영합니다!n”); printf(“C 언어를 시작합니다!n”); return 0; } 주석문 : 코드에 대한 설명, 이 부분은 무시하고 처리 프로그램 본체 (main 함수) main() 함수의 시작 부분 main() 함수의 종료 부분 문(statement) : 하나의 작은 처리(‘작업’) 단위로 마지막에 ; 세미콜론을 붙임 첫번째 실행 두번째 실행 문은 원칙적 으로 처음부터 순서대로 처리 들여쓰기 인클루드(include) : 헤더파일을 읽어 들임 # 기호 있는 줄 : 전처리기(preprocessor)가 다른 코드 번역하기 전에 읽어 들임
  • 8. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ - 변수는 컴퓨터의 메모리를 이용해서 여러 가지 값을 기억하는 기능함 - A = 100 , 변수 A 라는 메모리 공간에 100을 저장 변수의 정의, 특징 8 변수와 식별자 C 프로그래밍 (1) 메모리 0x9E 번지 0x9F 번지 0xA1 번지 0xA2 번지 변수 A 100 - 식별자(identifier) : 변수의 이름으로 사용할 수 있는 문자와 수치의 조합 < 식별자 작성 규칙 > - 영문, 숫자, 밑줄 문자(underscore, _) 가운데 하나를 사용할 수 있고, 특수 기호를 포함할 수 없음 - 환경에 따라서 31 문자까지 제한 - C언어의 예약어(keyword) 사용 불가 - 숫자료 시작 불가 - 대문자와 소문자는 구별됨 < 잘못된 예 > - 12a : 숫자로 시작하면 안됨 - return : 예약어는 사용 불가 - is-a : 특수 기호는 사용 불가 변수의 이름 = 식별자
  • 9. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 9 변수의 데이터형(data type) C 프로그래밍 (1) 종류 이름 크기 기억할 수 있는 값의 범위 문자형 char 1바이트 영문숫자 1문자 -128 ~ 127 unsigned char 1바이트 영문숫자 1문자(부호 없음) 0 ~ 255 정수형 short int 2바이트 정수 -32768 ~ 32767 unsigned short int 2바이트 정수(부호 없음) 0 ~ 65535 int 4바이트 정수 -2147483648 ~ 2147483647 unsigned int 4바이트 정수(부호 없음) 0 ~ 4294967295 long int 4바이트 장정수 -2147483648 ~ 2147483647 unsigned long int 4바이트 장정수(부호 없음) 0 ~ 4294967295 부동 소수점형 float 4바이트 단정밀도 부동소수점수 3.4E-38 ~ 3.4E+38 double 8바이트 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308 long double 16바이트 확장 배정밀도 부동소수점수 1.7E-308 ~ 1.7E+308 ☞ 단, C언어의 기본형 크기는 개발환경에 따라 차이가 있을 수 있음
  • 10. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 10 변수의 선언 및 이용 C 프로그래밍 (1) - 변수 선언(declaration) : 변수 이름과 형을 결정하고 변수를 준비하는 작업 변수의 선언 - 변수 값의 대입(assignment) : 변수를 선언하고 변수에 특정한 값을 저장 또는 기억시키는 작업 변수 값의 대입 변수 선언 구문 Int num; -> int형 변수 num입니다. char c; -> char형 변수 c입니다. double db, dd; -> double형인 두 개의 변수 db와 dd입니다. numint형 형 이름 식별자; 변수 값 대입 구문 ……. int num; num = 3; printf(“변수 num의 값은 %d입니다.n”, num); - 실행 화면 - 변수 num의 값은 3입니다. 변수 이름 = 식; num
  • 11. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 11 C 프로그래밍 (1) #include <stdio.h> int main(void) { int num1 = 3; int num2; printf(“변수 num1의 값은 %d입니다. n”, num1 ); num1 = 5; printf(“변수 num1의 값을 %d로 변경했습니다. n”, num1); num2 = num1; printf(“num1 값을 num2에 대입하여 num2 값은 %d입니다. n”, num2); return 0; } Sample4.c 소스코드 변수 num1의 값은 3입니다. 변수 num1의 값을 5로 변경했습니다. num1 값을 num2에 대입하여 num2 값은 5입니다. Sample4 실행 화면 변수 초기화 및 값의 변경 변수 초기화 구문 형 이름 식별자 = 식; num1 num1 num2 num1=5; num2=num1;num1=3; 변수 선언은 함수 블록 안에서 다 른 문보다 맨 위에 먼저 표기한다.
  • 12. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 12 본 자료는 코딩인카페 1기 C&JAVA 기초과정 4회차 자료 중 일부를 발췌한 내용입니다. < 참고자료 > 1. C를 배우기전에 반드시 알아야 할 것들, 무라야마 유키오, 루비페이퍼 2. 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴