변수
- 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로 변할 수 있는 값을 의미
변수명 작성 규칙
- 영문자, 숫자, _(under bar)를 사용할 수 있음
- 첫 글자는 영문자나 _(under bar)로 시작해야 하며, 숫자는 올 수 없음
- 글자 수에 제한이 없음
- 공백이나 *, +, -, / 등의 특수문자를 사용할 수 없음
- 대소문자를 구분
- 예약어를 변수명으로 사용할 수 없음
- 변수 선언 시 문장 끝에 반드시 세미콜론(;)을 붙어야 함
구분 | 예약어 | |
제어문 | 반복 | do, for, while |
선택 | case, default, else, if, switch | |
분기 | break, continue, goto, return | |
자료형 | char, double, enum, float, int, long, short, signed, struct, typedef, union, unsigned, void | |
기억 클래스 | auto, extern, register, static | |
기타 | const, sizeof, volatile |
연산자
- 연산을 수행하는 기호를 의미
산술 연산자
- 가, 감, 승, 제 등의 산술 계산에 사용되는 연산자를 말함
연산자 | 의미 | 비고 |
+ | 덧셈 | |
- | 뺄셈 | |
* | 곱셈 | |
/ | 나눗셈 | |
% | 나머지 | |
++ | 증가 연산자 | - 전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감 시킨 후 변수를 연산에 사용 - 후치 : 변수 뒤에 증감 연산자가 오는 형태로 먼저 변수를 연산에 사용한 후 변수의 값을 증감 시킴 |
-- | 감소 연산자 |
관계 연산자
- 두 수의 관계를 비교하여 참 또는 거짓을 결과로 얻는 연산자
연산자 | 의미 |
== | 같다 |
!= | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
비트 연산자
- 비트별(0,1)로 연산하여 결과를 얻는 연산자
연산자 | 의미 | 비고 |
& | and | 모든 비트가 1일 때만 1 |
^ | xor | 모든 비트가 같으면 0, 하나라도 다르면 1 |
| | or | 모든 비트 중 한 비트라도 1이면 1 |
~ | not | 각 비트의 부정, 0이면 1, 1이면 0 |
<< | 왼쪽 시프트 | 비트를 왼쪽으로 이동 |
>> | 오른쪽 시프트 | 비트를 오른쪽으로 이동 |
논리 연산자
- 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자
연산자 | 의미 | 비고 |
! | not | 부정 |
&& | and | 모두 참이면 참 |
|| | or | 하나라도 참이면 참 |
대입 연산자
- 연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공함
연산자 | 예 | 의미 |
+= | a += 1 | a = a + 1 |
-= | a -= 1 | a = a - 1 |
*= | a *= 1 | a = a * 1 |
/= | a /= 1 | a = a / 1 |
%= | a %= 1 | a = % 1 |
<<= | a <<= 1 | a = a << 1 |
>>= | a >>= 1 | a = a >> 1 |
배열
- 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해 여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것을 말함
- 배열은 하나의 이름으로 여러 기억장소를 가리키기 때문에 배열에서 개별적인 요소들의 위치는 첨자를 이용하여 지정
- 배열은 변수명 뒤에 대괄호 []를 붙이고 그 안에 사용할 개수를 지정
- C언어에서 배열의 위치는 0부터 시작
- 배열은 행 우선으로 데이터가 기억장소에 할당
- C언어에서 배열 위치를 나타내는 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음
포인터와 포인터 변수
- 포인터는 변수의 주소를 말하며 C언어에서는 주소를 제어할 수 있는 기능을 제공
- C언어에서 변수의 주소를 저장할 때 사용하는 변수를 포인터 변수라 함
- 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수
- 포인터 변수의 용도
- 연결된 자료 구조를 구성하기 위해 사용함
- 동적으로 할당된 자료 구조를 지정하기 위해 사용
- 배열을 인수로 전달하기 위해 사용
- 문자열을 표현하기 위해 사용
- 커다란 배열에서 요소를 효율적으로 저장하기 위해 사용
- 메모리에 직접 접근하기 위해 사용
절자척 프로그래밍 언어
- 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어
- 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있음
- 자연어에 가까운 단어와 문장으로 구성
절차적 프로그래밍 언어의 장·단점
- 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름
- 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용할 수 있음
- 모듈 구성이 용이하며 구조적인 프로그래밍이 가능
- 프로그램을 분석하기 어려움
- 유지 보수나 코드의 수정이 어려움
절차적 프로그래밍 언어의 종류
- C
- ALGOL
- COBOL
- FORTRAN
객체지향 프로그래밍 언어
- 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
객체지향 프로그래밍 언어의 장·단점
- 상속을 통한 재사용과 시스템 확장이 용이
- 코드의 재활용성이 높음
- 자연적인 모델리에 의해 분석과 설계를 쉽고 효율적으로 할 수 있ㅇ므
- 사용자와 개발자 사이의 이해를 쉽게 해줌
- 대형 프로그램의 작성이 용이
- 소프트웨어 개발 및 유지보수가 용이
- 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음
- 구현 시 처리 시간이 지연
객체지향 프로그래밍 언어의 구성 요소
- 객체
- 클래스
- 메시지
객체지향 프로그래밍 언어의 특징
- 캡슐화
- 정보 은닉
- 추상화
- 상속성
- 다형성
객체지향 프로그래밍 언어의 종류
- JAVA
- C++
- Smalltalk
스크립트 언어
- HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어
- 서버용 스크립트 언어 : ASP, JSP, PHP, 파이썬
- 클라이언트용 스크립트 언어 : 자바 스크립트(JAVA Script)
스크립트 언어의 장·단점
- 컴파일 없이 바로 실행하므로 결과를 바로 확인할 수 있음
- 배우고 코딩하기 쉬움
- 개발 시간이 짧음
- 소스 코드를 쉽고 빠르게 수정할 수 있음
- 코드를 읽고 해석해야 하므로 실행 속도가 느림
- 런타임 오류가 많이 발생
스크립트 언어의 종류
- 자바 스크립트
- ASP
- JSP
- PHP
- 파이썬
선언형 언어
- 명령형 언어와 반대되는 개념의 언어로 명령형 언어가 문제를 해결하기 위한 방법을 기술한다면 선언형 언어는 프로그램이 수행해야 하는 문제를 기술하는 언어
선언형 언어의 장·단점
- 가독성이나 재사용성이 좋음
- 작동 순서를 구체적으로 작성하지 않기 때문에 오류가 적음
- 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있음
선언형 프로그래밍 언어 종류
- HTML
- LISP
- PROLOG
- XML
- Haskell
라이브러리
- 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체
- 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위해 미리 만들어 놓은 것으로 필요할 때는 언제든지 호출하여 사용
- 표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로 여러 종류의 모듈이나 패키지 형태
- 외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로 외부 라이브러리를 다운받아 설치한 후 사용
'1. 자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 1 (0) | 2020.08.11 |
---|---|
[정보처리기사 필기] 4과목 프로그래밍 언어 활용 - 2 (0) | 2020.08.10 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 3 (0) | 2020.08.07 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 2 (0) | 2020.08.06 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 1 (0) | 2020.08.05 |