C programs 구조
1. 전처리 명령어: 컴파일 전에 소스코드를 처리
1) 예시
ex) #include<stdio.h>
#include<파일>(전처리 명령어): 어떤 파일을 포함한다.
<stdio.h>:1 stdio.h는 c언어 기본 라이브러리 2 확장자가 .h로 끝나는 헤더파일 3 printf함수 호출 정보 포함
#define~~: 상수나 매크로 함수 정리 ex) #define
2. global declaration
3. 함수 (지역변수 선언/ 명령문)
4. 기타 함수
token
keyword ex) int, void (예약어)
1) 37가지 있다.
identifier: 데이터나 객체에 부여하는 이름 ex) a, b sum (변수나 함수이름)
1) 첫 글자는 영문자나 _로 시작
2) 이후 구성은 영문자/숫자/_
3) 처음 63글자만 구별 가능
4) keyword는 사용할 수 없다.
연산자 ex)
구두점 ex) {},;
상수 2, 3, ‘A’, ‘B’
문자열 상수(string contants)
data type(자료형): 데이터를 표현하는 방식
(정수형: boolean, 문자, 정수) (실수형: 실수, 허수, 복소수) (void) (파생형)
Boolean
true와 false 오직 2가지 값 2. .cpp로 저장해야 유효하다
int type-char (정수형-문자형)
1byte로 저장되며 하나의 문자 저장
알파벳뿐 아니라 숫자나 기호도 표현가능
0~255의 값을 가지는 작은 int형으로 취급되기도 한다.
ex) char c = ‘A’;
printf(“%d”, c); //65
printf(“%c”, c); //A
printf(“%c”, c+2); //C (c+2 = 67 =>67은 아스키 코드에서 ’C’를 의미)
char이나 int나 비슷하게 취급한다. (산술연산이 가능)
int type-int (정수형-정수형)
0. 공통사항
1) 부호: (0 = +). (1 = -)
real type (실수형-실수형)
0. 공통사항
1) 부호: (0 = +). (1 = -)
float (4byte = 32bit) => (부호 1 + 지수 8 + 가수 23)
1) 지수: 2^(2^(8-1)) = 10^38.531... => 38자리 표현 가능
2) 가수: log10(2^23) = 6.923 => 소수점 이하 6자리 표현 가능
2. double (8byte = 64bit) => (부호 1 + 지수 11 + 가수 52)
c,d,f |
|
변환 |
|
크기 (byte) |
값의 표현범위 |
int |
char |
%c |
|
1 |
+-2^(8-1) (-128 ~ 127) |
short (int) |
%hd(half) |
|
2 |
+-2^(16-1) (-32768 ~ 32767) |
|
int |
%d |
|
4 |
+-2^(32-1) |
|
long (int) |
%ld |
|
4 |
+-2^(32-1) |
|
long long (int) |
%lld |
|
8 |
+-2^(64-1) |
|
real |
float |
%f |
|
4 |
소수 6자리, e^(+-38) |
double |
%f |
|
8 |
소수 15자리, e^(+-308) |
|
long double |
%lf |
|
8이상 |
|
variables & constants
ex) float payRate = 14.25 (datatype variablename = constants)
0. 공통사항
1) variable의 type에(그릇에) 맞는 constants(=데이터 값) (물건)를 담아야한다.
2) (변수명) (변수 type) (크기) (값) (주소) 총 5가지가 있다.
variables
1) 변수를 쓰려면 함수의 첫 부분에서 선언해야한다.
2) 선언할 때는 variables의 type과 variables의 이름을 순서대로 써서 선언한다.
3) 변수 초기화???
2. constants: 프로그램이 실행되는 동안에 변하지 않는 데이터 값
1) literal constants:(말 그대로 상수, 숫자 자체) 이름 없는 변경이 불가능한 상수 ex)7, 1.3
2) defined constants: 전처리 명령어 define을 이용해서 literal에 이름을 붙임
(상수이름이 유일하게 대문자이다.) ex) #define SALES_TAX_RATE 0.0825
3) memory constants(symbolic constants): (const를 사용해서) 이름을 부여받은 상수
=>변수 같은데 그런 거 아니고 상수에 이름을 부여하는 것이다.
ex) const int MAX=100
기타 -문자상수(character): ‘’로 표현
-문자열상수(string): “”로 표현
printf
(“”안=> 출력할 내용) (형식문자: ex> %d, %f)
printf(“출력할 내용 %d 출력할 내용 %f”, int형 변수, float형 변수)=>prinf 함수의 서식지정
printf 출력 규칙들 ( % | Flags |
( % | 정렬부호 | 전체 폭 | . | 소수부분 폭 | 자료형 )
(주의: 전체 폭에 소숫점도 센다.)
0. 공통
1) literal을 바로 출력할 수도 있고 변수 선언하고 변수를 통해서 출력할 수 있다.
int 출력 ( printf(“%부호숫자d”, int형 변수) 부호와 숫자는 없을 수도 있다.)
1) 부호: (없음: 기본적으로 우측정렬/ -: 좌측정렬/ +: 값의 부호 출력)
2) 숫자: 필드 폭
2. float형 출력 ( printf(“%부호숫자f”, float형 변수) 부호와 숫자는 없을 수도 있다.)
1) 부호: (없음: 기본적으로 우측정렬/ -: 좌측정렬/ +: 값의 부호 출력)
2) 숫자(ex> 5.2) : (왼쪽숫자: 폭/ 점 뒤의 오른쪽 숫자: 소수점 이하 자리수)
(주의: 소수점도 폭에 해당하는 자리 수에 포함된다.)
특수문자 (in printf의 “”)
\n, \t
vs
\“”\: printf안에서 큰 따옴표 쓸 때
scanf
다양한 형태의 데이터를 입력 받을 수 있다.
int main(void) {
int num;
scantf(“%d”, &num); // “%d”: 10진수 정수 형태로 입력받아서 // &num: 변수 num에 저장하라
}
(내 생각: 검은창에 type에 맞는 값 입력하면 scanf의 변수에 저장(입력)된다.
(입력 값이 매번 바뀔 때 사용)
아스키 코드
(0~31: 제어코드)(32~64, 91~96, 123~127: 숫자나 기호)(65~90: 대문자)(97~122: 소문자)
적용
int main(void) { char ch1=’A‘, ch2=65; printf(“%c %d”, ch1, ch1); // =>’A’가 문자형으로는 A로, 정수형으로는 65 printf(“%c %d”, ch2, ch2); // => 65가 문자형으로는 A로, 정수형으로는 65 } // 65 = ‘A’ 서로 표현 데이터 타입에 따라 다르게 출력된다. 같은 것이다.
int main() { return 0; }
'C언어' 카테고리의 다른 글
11-2강 구조체 포인터 (0) | 2020.04.09 |
---|---|
11-1강 - 구조체 기본 (0) | 2020.04.09 |
9강 - Pointer Application (0) | 2020.03.31 |
3강 - 함수 (function) (0) | 2020.03.02 |
2강 - structure of a C program (0) | 2020.03.02 |