01. 프로그래밍 기초
C 프로그램 구조
; 비주얼 스튜디오 환경
솔루션은 여러 개의 프로젝트를 가짐
프로젝트는 여러 소스파일을 포함한 여러 리소스로 구성
한 프로젝트는 단 하나의 함수 main()과 다른 여러 함수로 구현되며, 최종적으로 프로젝트 이름과 같은 하나의 실행 파일이 만들어진다.
C 프로그램은 적어도 main() ㅏㅎㅁ수 하나는 구현되어야 응용 프로그램으로 실행 될 수 있다.
* 키워드 (keyword)
; 문법적으로 고유한 의미를 갖는 예약된 단어
'예약'되었다는 의미는 프로그램 코드를 작성하는 사람이 이 단어들을 다른 용도로 사용해서는 안 된다는 뜻
이러한 예약어(reserved word) = 키워드(keyword)
* 식별자 (identifiers)
; 프로그래머가 자기 스스로 정의해 사용하는 단어들
식별자 구성 규칙
1. 숫자는 맨 앞에 올 수 없다.
2. 대소문자는 구별된다.
3. 중간에 공백문자(space)가 들어갈 수 없다.
4. 키워드는 식별자로 사용할 수 없다.
5. 알파벳과 _를 제외한 문자는 사용할 수 없다.
* 문장(statement)
; 프로그래밍 언어에서 컴퓨터에게 명령을 내리는 최소 단위
문장은 세미콜론으로 종료
* 블록 ; block
; 여러개의 문장을 묶은 것
블록 내부에서 문장들을 탭 키로 한 스텝만큼 오른쪽으로 들여쓰는 소스 작성 방식 ; 들여쓰기(indentation)
=> 필수 조건은 아님 ; 코드의 가독성을 위해
반면 Python은 코드가 들여쓰기를 기준으로 구분되기 때문에 필수
* 주석 ; comments
; 코드에 대한 설명 ; 타인은 물론 자신도 나중에 코드의 쓰임새를 알아보기 위해서 꼭 필요
// ; 한줄 주석
/* ... */ : 여러줄 주석
02. 자료형과 변수선언
자료형 (data type) 분류
* 기본형 (basic types)
+ 정수형 (int)
+ 실수형 (float)
+ 문자형 (char)
+ void
* 유도형 (derived types)
* 사용자 정의형 (user defined types)
변수 (variables)
; 정수와 실수, 문자 등과 자료 값을 중간 공간에 저장할 공간
; 선언된 자료형에 따라 변수의 저장공간 크기와 저장되는 자료 값의 종류가 결정
; 저장되는 값에 따라 변수 값은 바뀔 수 있으며 마지막에 저장된 하나의 값만 저장 유지
변수 선언
; 컴파일러에게 프로그램에서 사용할 저장 공간인 변수를 알리는 역할
프로그래머 자신에게도 선언한 변수를 사용하겠다는 약속의 의미
변수를 사용하려면 원칙적으로 사용 전에 먼저 변수선언(variables declaration) 과정이 반드시 필요하다.
변수 초기화
; 변수를 선언만 하고 자료 값에 아무것도 저장하지 않으면 원치 않는 값이 저장되녹 오류가 발생
변수를 선언한 이후에는 반드시 값을 저장 => 변수 초기화
변수의 3요소
1. 변수 이름
2. 변수의 자료형
3. 변수 저장 값
저장 값이 계속 바뀔 수 있으므로 변수
** 변수에서 l-value 와 r-value를 설명하시오.
A :
l - value 는 left value 로서, 대입 연산자 '=' 의 왼쪽에 위치하는 변수이다.
l - value는 반드시 값을 저장할 수 있는 변수나 변수를 표현하는 표현식이여야 한다.
r - value 는 right value 로서, 대입 연산자 '=' 의 오른쪽에 위치하는 변수나 연산결과의 값이다.
r - value 는 l -value에 저장할 자료 값을 반환하는 표현식이여야 한다.
03. 기본 자료형
* 정수형 (integer types) ; int
short ; int 보다 작거나 같은 범위의 값
long ; int 보다 크거나 같은 범위의 값
[부호가 있는]을 의미하는 singed 키워드는 정수형 자료형 키워드에 앞에 표시할 수 있음.
물론 이 singed 키워드는 생략될 수 있다. singed int = int
0과 양수만 지원하는 unsinged 자료형
; 부호가 없는 정수인 unsinged int는 0과 양수만을 저장할 수 있는 정수 자료형
비주얼 스튜디오 환경
short => 2 bytes = 16bits
int , long => 4bytes = 32bits
* 부동 소수형 (floating point number data type)
; 실수를 표현하는 데이터 타입
float => 4bytes = 32bits
double => 8bytes = 64bits
long double => 8bytes = 64bits
float x = 3.14; // float x = 3.14; 인 경우 , 오류
float x = 3.14F // float 자료형임을 표시 F
문자열 자료형 (char)
char
singed char
unsinged char
저장공간 모두 1byte
자료형의 크기 ; sizeof
sizeof(자료형) => 자료형의 크기 (byte) 단위로 반환
04. 상수 표현 방법
* 상수 ; constant
- 리터럴 상수 (literal constant)
; 이름 없이 있는 그대로 표현한 자료 값
달리 이름이 없이 소스에 그대로 표현해 의미가 전잘되는 다양한 자료 값
- 심볼릭 상수 (symbolic constant)
; 이름이 있으나 정해진 하나의 값만으로 사용되는 자료 값
심볼릭 상수는 리터럴 상수와 다르게 변수처럼 이름을 갖는 상수
+ 심볼릭 상수를 표현하는 방법
const 상수 (const constant)
매크로 상수 (macro constant)
열거형 상수 (enumeration constant)
escape sequence ( = 특수문자)
; 역슬래쉬( \ )와 문자의 조합으로 표현하는 문자
EX) \n , \a
- 정수형 상수
int
unsigned int
long
unsinged long
long long
unsinged long long
// 8진수 / 16진수 표기법
printf("%d" , 011); // 8진수 11 = 10진수 9
printf("%d", 0x1A); // 16진수 1A = 10진수 26
// 지수 표기법
printf("%f", 3.14E+2); // 3.14*10^2
printf("%f", 3.14e-2); // 3.14*10^-2
실수형 리터럴 상수
float
double
long double
일반 소수는 double 유형
float 형 상수는 숫자 뒤에 f, F를 붙임
long double 상수는 숫자 뒤에 L을 붙임
키워드 const
; 변수 선언 시 자료형 또는 변수 앞에 키워드 const가 놓이면 이 변수는 심볼릭 상수가 된다.
상수는 변수 선언 시 반드시 초기 값을 지정 해야 한다.
심볼릭 상수는 변수처럼 고유한 이름이 있는 상수로서 변수 선언에서 키워드 const를 자료형 앞에 삽입하면 변수로는 선언되지만 일반 변수와는 달리 초기 값을 수정할 수 없으며, 이름이 있는 심볼릭 상수(constant number)가 된다.
열거형 상수
; 열거형은 키워드 enum을 사용하여 정수형 상수 목록 집합을 정의하는 자료형
열거형 상수에서 목록 첫 상수의 기본 값은 0이며 다음부터 1씩 증가하는 방식으로 상수 값이 자동으로 부여됨
// 열거형 상수 ; enum
#include <stdio.h>
int main()
{
enum DAY {SUN, MON, TUE, WED, THU, FRI, SAT};
printf("SUN: %d, THU: %d\n", SUN, THU);
enum A {A, B=3, C, D, E=9, F, G};
printf("A: %d, B: %d, C: %d, D: %d, E: %d, F: %d, G: %d\n", A, B, C, D, E, F, G);
enum pl {c = 1972, cpp = 1983, java = 1995, csharp = 2000};
printf("c : %d, cpp : %d, java : %d, csharp : %d", c, cpp, java, csharp);
return 0;
}
/*
SUN: 0, THU: 4
A: 0, B: 3, C: 4, D: 5, E: 9, F: 10, G: 11
c : 1972, cpp : 1983, java : 1995, csharp : 2000
*/
전처리기 지시자 #define
'C Programming' 카테고리의 다른 글
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 04 프로그래밍 연습 (0) | 2022.06.27 |
---|---|
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 03 프로그래밍 연습 (0) | 2022.06.27 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 02 프로그래밍 연습 (1) | 2022.06.26 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 01 연습문제 정답 (0) | 2022.06.26 |
[C] 포인터 기초, 포인터를 이용한 값 변환 (0) | 2022.02.14 |