DataType.c
- 사용 가능한 문자
1. 영문 대소문자
2. 숫자
3. 특수문자 (기호)
4. 한글 (주석, 문자열)
5. 여백 -> space, tab, 개행 (\n 이런거)
- 예약어
C언어에서 이미 사용하고 있는 문자열(단어) -> 파란색으로 표시
이미 사용하고 있기 때문에, 우리가 사용할 수 없다.
[2진수]
- 모든 숫자를 0,1로만 표현한 숫자 체계 (2개의 숫자)
- 굳이 10진수를 2진수 값으로 변환을 해야할 필요는 없지만,
2진수를 10진수로 변환하는 것은 '익숙'해져야 한다.
[자료형]
Data Type : 자료를 저장하는 공간(메모리)에 저장될 '값의 종류'
1bit - 0 또는 1을 저장할 수 있는 크기
1byte(8bit) - 영문 한 글자를 저장할 수 있는 크기
1KB(1024byte), 1MB(1024KB), 1GB(1024MB) ...
> C언어에서 모든 값은 '숫자'
1. 정수형 (부호 있는 정수 / 부호 없는 정수)
// 부호가 있는 경우 맨 앞 bit는 부호bit (0이면 양수, 1이면 음수)
// 음수일 경우, 그 뒤 bit 들 값들이 더해진다. (값이 커진다)
*char (1byte/8bit) [-128 ~ 127] / [0 ~ 255] ( 2^9 - 1 = 255 )
short (2byte/16bit) [-32768 ~ 32767] / [0 ~ 65535]
**int (4byte/32bit) [-21억 ~ 21억] / [0 ~ 42억]
long (4byte/32bit) [-21억 ~ 21억] / [0 ~ 42억]
long long (8byte/64bit) [900경...]
9000000000000000000
2. 실수형 (쉽게 소수)
*float (4byte/32bit) [소수점 이하 6자리까지 정확도 보장]
**double (8byte/64bit) [소수점 15자리]
long double (10byte) [소수점 19자리]
> 정수형과 실수형은 값을 다루는 방식 자체가 다르다!
--> int와 double은 C언어에서 기본적으로 사용되는 정수와 실수 자료형이다.
[변수 (Variable)]
1. 정의 : 하나의 값을 저장할 수 있는 메모리 공간
- 메모리 공간 : 프로그램이 실행되는 동안 사용하는 공간 (RAM)
2. 만드는 법 (변수 선언)
자료형 변수명 = 초기값;
자료형 변수명; 이렇게 만들 수도 있지만, 꼭 초기값을 사용한다.
이 방법은 그냥 불가능하다고 생각하기!! (좋은 방법이 아님)
3. 변수명 규칙
- 영문자, 숫자, 언더바(_)만 가능하다. (한글이 가능하긴 한데, 사용하지 않음!!)
> 변수명 중간에 공백이 있어도 안 됨. (공백도 특수문자)
- 첫 글자는 반드시 영문이어야 한다.
- 대소문자 구분
> 너무너무 중요!!!
> 프로그래밍 언어에서는 무조건 대소문자가 구분된다. (대문자/소문자 다른 글자)
- 예약어 사용 불가
- 변수명에 의미를 부여하여 이름만 봐도 무얼 저장하고 있는지 알 수 있도록 한다.
> 너무너무너무 중요!!!
> 헝가리안 표기법 - 변수명에 자료형을 의미하는 '접두사' 붙이기
int - i, n
char - c
float - f
double - d
==> 자료형과 변수명을 통해 만들어진 공간은, 변수명으로 다룬다. (그 공간을 접근)
1. 공간에 값을 저장 (대입)
2. 공간에 들어있는 값을 사용
형식 지정이 있는 출력 : printf
- print + format : 꼭~~~ 친해지길 바랍니다...
printf("출력하고 싶은 문자열", 문자열에 삽입될 값 나열);
printf("1 + 1 = %d", 2);
> 큰 따옴표 안에 문자열을 입력하고, %d와 같은 서식문자가 있는 경우,
문자열의 큰 따옴표가 끝난 뒤 값을 나열한다.
> %d와 같은 서식문자의 개수와 타입에 맞게 순서대로 나열
============================
형식 : %[-][0][n][.m]서식문자 []는 옵션 (선택사항)
============================
%c 정수 값을 '문자'로 출력
%d 정수 값을 10진수로 출력 (부호 있음)
%o 정수 값을 8진수로 출력
%x, %X 16진수
%f 소수 출력
%s 문자열 (string)
%p 16진수로 메모리 주소 출력
============================
문자열 안에서 특수한 기능을 하는 이스케이프 문자
\n 개행 (new line)
\t tab (탭키 만큼 간격 띄우기)
\\ \ 하나 사용
\' ' 하나 사용
\" " 하나 사용
#include <stdio.h>
void main()
{
변수 선언 (생성)
int iNum; 정수를 저장하는 공간을 만들고, 그 이름을 iNum으로 한다.
공간이 만들어지면, '쓰레기값'이 들어가 있다.
iNum = 10; 변수에 값 대입!
.c 소스파일은 C언어 스타일로 컴파일이 된다.
C언어 표준에서는 변수의 선언(생성) 코드 위에 다른 코드가 있으면 안 된다.
> int iNum1 = 0; 코드 위에 iNum = 10; 을 했다.
> 변수의 선언이 가장 위에 위치해야한다!!
--> 사용할 변수는 미리 위에 선언해놓고 사용하는게 깔끔하다.
int iNum1 = 0; 변수 생성과 동시에 초기값을 넣는 행위 => 초기화
초기값은 0으로 한다.
int iNum2 = 0, iNum3 = 0; 동시에 여러 변수 선언 및 초기화
잘못된 변수명
int 001Number = 0; 숫자로 시작 X
int iNumber# = 0; 사용할 수 없는 기호
int my Number = 0; 공백 사용 불가
int MyNumber = 0;
int MyNumber = 0; 같은 이름 사용 불가 (같은 지역 내에서)
int Mynumber = 0; 대소문자가 구분이 된다.
상수
1. 값을 바꿀 수 없다. (프로그램이 실행되는 동안 변하지 않는다.)
2. 상수의 종류
정수 상수 : 10 , 0 , -3, 1 ... 등등 그냥 기입하는 숫자
실수 상수 : 10.01 , -11.123 등등
문자 상수(1개의 문자) : 'a' , '1'
문자열 상수(문자가 나열) : "abcd"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | printf("1 + 1 = %d\n", 2); // 2는 정수 상수 printf("%d + %d = %d\n", 1, 2, 3); printf("1 + 2 = 3\n"); printf("%f\n", 10.1); // 실수 상수 출력 printf("%c\n", 'A'); // 문자 상수 출력 printf("%s\n", "ABCD"); // 문자열 상수 출력 // 변수의 값을 출력할 때는, 그 변수의 타입에 맞는 서식문자를 사용한다. printf("iNum1 = %d\n", iNum1); iNum1 = 10; printf("iNum1 = %d\n", iNum1); // int iNum1 = 0; --> 4byte 정수 공간 생성, 정수0을 대입, 이름을 iNum1 // iNum1 = 10; --> 아까 만든 iNum1 공간에 정수10을 '대입' // printf(~~, iNum1); -> iNum1 공간에 저장된 값(정수10)을 %d에 삽입할 때 '사용' // 공간에 값을 대입, 사용 2가지 행위 잘 구분해야 함 | cs |
=============================================================================================
출력 연습
1. printf() 1개만 사용하여 아래 3줄을 출력
2. 나이 값(20)은 iAge 라는 변수를 만들어서 대입하기
3. printf() 안에서 서식문자를 이용하여 치환해야 할 값
홍길동 --> 문자열
20 --> 정수 (iAge를 사용)
010-7979-8282 --> 문자열
printf("~~~~~~~", ?, ?, ?);
[출력결과]
이름 : 홍길동
나이 : 20세
번호 : 010-7979-8282
|
1
2
3
4
5
6
7
8
9
10
11
12 |
#include <stdio.h>
void main()
{
int iAge = 20;
printf("이름 : %s\n나이 : %d\n번호 : %s\n", "홍길동", iAge, "010-7979-8282");
system("pause");
}
|
cs |
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
'C > C언어 이론' 카테고리의 다른 글
| (6)Function (0) | 2018.06.20 |
|---|---|
| (5)Repetitive (0) | 2018.06.20 |
| (4)Conditional (0) | 2018.06.20 |
| (3)Operator (0) | 2018.06.20 |
| (1)Hello World (0) | 2018.06.19 |