본문 바로가기

C언어

1강 - Introduction to C

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