최초 작성일: 2024-09-16
최종 작성일: 2024-09-16
목표 : 정처기 합격 및 CS 지식 쌓기
C언어
1. 변수
(1) 변수의 개념
값이 저장되는 기억공간
저장된 데이터의 값은 변경될 수 있음
각 변수에는 정해진 자료형이 있고 할당된 값을 가짐
(메모리에서 얼마큼의 크기를 가지고 있는 지)
자료의 형태를 딱 만들어 놓으면 한정된 메모리 공간 활용이 가능함
(2) 변수명 작성 규칙
변수는 사용전에 사용해야함
영문자 또는 언더바로 시작
중간에 공잭 사용 불가
예약어는 변수명으로 사용불가
(3) C언어 예약어
(4) 자료형(data type)
효율적인 메모리 사용을 위하여 여러 유형의 자료형 존재
C언어 자료형
종류 | 데이터타입 | 크기 | 허용번위 |
문자형 | Char | 1Byte | -부터 시작 |
Unsigned char | 1Byte | ||
정수형 | Short | ||
Int | |||
long | |||
longlong | |||
실수형 | Float | ||
Double | 기본 | ||
Long double |
JAVA 언어 자료형
종류 | 데이터타입 | 크기 | 허용범위 |
논리형 | Boolean | 1bit | |
문자형 | Char | 2byte | |
정수형 | Byte | 1byte | |
short | 2byte | ||
Int | 4byte | ||
long | 8byte | ||
실수형 | Float | 4byte | |
Double | 8byte | 기본 |
(5) 변수의 선언
1) 자료형 변수명 = 값;
2. 연산자
(1) 산술연산자
% 나머지
++ 1증가
--’ 1감소
== 같다
!= 같지 않다
&& AND
|| OR
(4) 비트 연산자 (둘다 참일때만 참)
연산자 | 기능 | 비트연산식 | 결과 |
& | 비트AND | 10&7 | |
| | 비트OR | 10|7 | |
~ | 비트NOT | ~10 | 양수이면 절대값에 1 붙이고 마이너스 마이너스이면 절개값에서 1빼고 플러스 |
^ | 비트XOR | 10^7 | |
<< | 좌비트이동 | 10<<2 | |
>> | 우비트이동 | 10>>2 |
(6) 삼항 연산자
연산자 | 기능 | 삼항 연산식 | 결과 |
?: | 3항 연산 | 10>3 ? 10:3 | 10 |
*10>3 ? 10:3 10>3은 조건식이고 참이면 10, 거짓이면 3 반환하면 됨
(7) 대입 연산자 (다끝나고 나서 우선순위가 가장낮음)
연산자 | 기능 | 대입연산식 | 결과 |
+= | 덧셈 후 대입 | A +=10; | A+10 = a |
-= | 뺄셈 후 대입 | ||
*= | 곱셈 후 대입 | ||
/= | 나눗셈 후 대입 | ||
%= | 나머지 후 대입 |
(8) 연산자 우선순위
우선순위 | 분류 | 종류 |
1 | 단항 연산자 | ++,--,! |
2 | 산술 연산자 | *,/,+,- |
3 | 시프트 연산자 | <<,>> |
4 | 관계 연산자 | >,<,>=,<=,==,!= |
5 | 비트 연산자 | &,^,| |
6 | 논리 연산자 | &&,|| |
7 | 삼항 연산자 | ?: |
8 | 대입 연산자 | =,+=,-=,*=,/=,%= |
3. 입출력 함수
(1) Printf()/ scanf()
가장 많이 사용하는 표준 입출력 함수로, <stdio.h> 헤더 파일에 정의되어 있다.
출력 변환 문자
구분 | 설명 | 사용 예 | 출력 값 |
%d | 10진수 | Printf(“%d”,10); | 10 |
%o | 8진수 | Printf(“%o”,10); | 12 |
%x | 16진수 | Printf(“%x”,10); | A (10은 a로 표현( |
%f | 실수 (소수점 6자리 표현) |
Printf(“%f”,1.3); | 1.300000 |
%c | 문자 1개 | Printf(“%c”,’A’); | A |
%s | 문자열 | Printf(“%s”,”abcde”); | abcde |
(2) getchar()/putchar()
단일 문자를 입출력하는 버퍼형 입출력 함수
(한글자 입출력)
(3) gets()/puts()
문자열을 입출력하는 입출력 함수
인자로 주소값을 입력 받는다
4. 제어문
(1) If문
구분 | 설명 |
개념 | 조건식의 결과에 따라 중괄호{}에 묶인 블록의 실행 여부를 결정하는 조건문 |
조건식 | True 또는 false 값을 산출할 수 있는 Boolean 표현식이 온다 C언어에서는 0을 false(거짓)으로 0이 아닌 모든 값을 true(참)으로 인식한다 |
블록 | 중괄호{}로 묶인 코드 블록이 존재하면 조건이 참일 때 해당 블록 내의 모든 명령이 실행된다 중괄호가 없으면 조건이 참일 때 다음에 있는 한줄의 명령만 실행된다 |
(2) switch 문
비교할 변수가 어떤 값을 가지냐에 따라 실행문을 선택한다
해당 실행문 수행 후 break 문을 만날 때 까지 모든 실행문을 실행한다
5. 반복문
(1) for문
반복의 횟수가 정해진 반복문
자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문
문법 : for(초기식;조건식;증감식) {조건식의 결과가 참인 동안 반복할 명령문;}
(2) while 문
특정 조건을 만족할 때 까지 계속해서 주어진 명령문을 반복실행
문법 : while (조건식){조건식의 결과가 참인 동안 반복할 실행문;}
(3) do while문
무조건 한번 반복을 실행한 후 조건식을 검사하여 조건에 만족하는 동안 반복 실행
문법: do {조건식의 결과가 참인 동안 반복할 실해문;} while(조건식);
(4) continue문
continue문을 만나게 되면 더 이상 아래 명령문들을 실행하지 않고, 반복의 다음처리로 이동
(5) break 문 (continue의 반대로 보면됨)
break문을 만나게 되면 반복문을 종료하고 그 이후의 명령문을 실행
6. 함수
(1) 함수의 개념
하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합
*모든 프로그램에서는 main에서 시작함 (자바, c)
(2) 변수의 유효범위
1) 지역변수(중괄호 안에서 선언된 것)
블록내에서 선언되고 블록이 종료되면 메모리에서 사라짐
메모리 상의 스택 영역에 저장됨
초기화하지 않으면 쓰레기 값을 가질 수 있음
2) 전역변수(종료 전까지 메모리에 남아 있는 것)
프로그램 전체에서 접근 가능한 변수로, 함수의 외부에 선언됨
프로그램 종료시 메모리에서 사라짐
메모리 상의 데이터 영역에 저장됨
초기화하지 않으면 0으로 초기화됨
3) 정젹 변수(static variable)
Static 키워드로 선언한 변수
단 한번만 초기화 되며, 프로그램 종료시 까지 메모리에 남아있음
지역변수와 전역변수의 특징을 모두 가짐(함수 내에서만 사용가능함)
7. 배열과 포인터
(1) 1차원 배열
개념 : 같은 자료형의 변수를 연속적으로 묶어 놓은 저장 공간/ 메모리상의 물리적 위치에도 연속적으로 저장됨
(2) 2차원 배열 -> 이거 이해가 안됨
같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 저장 공간
(3) 포인터
메모리의 주소값을 저장하는 변수, 포인터 변수라고도 한다
연산자
-&(주소 연산자) : 변수의 메모리 주소를 변환하는 연산자
-*(참조 연산자) : 포인터 변수가 가리키는 메모리 주소에 저장된 값을 변환하는 연산자
8. 구조체
(1) 구조체
여러 변수들을 모아 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체
9. C언어 표준 라이브러리
헤더파일 | 기능 | 관련함수 |
stdio.h | 표준 입출력 | Printf(), scanf(), getchar(), Fopen(),fseek() 등 |
String.h | 메모리와 문자열의 처리 | Stcat(), strcmp(), strcpy(), Strlen()등 |
Ctype.h | 문자 검사 및 변환 | Isalnum(), isalpha(), isgraph(), tolower()등 |
Math.h | 삼각함수, 지수 절대 값 함수 등 수학함수 | Sin(), cos(), tan(), log(), exp(), fmod(), sqrt(), abs()등 |
Stflib.h | 메모리 동적 하당, 가상 난스 발생, 문자열 발생 | Malloc(), free(), rand(). Strtod(), atod()등 |
Malloc.h | 메모리 할당에 관한 함수 | Calloc(),malloc(),free()등 |
Time.h | 날짜와 시간 그리고 내부 클락 | Clock(), ctime(), asctime(), ftime(), time(), getdata()등 |
'스터디스터디 > 정처기' 카테고리의 다른 글
[실기] JAVA (3) | 2024.09.18 |
---|---|
/WIP/[실기] C언어 - 문제풀이(01~12) (0) | 2024.09.16 |
[실기] 알고리즘 표현 방법 & 프로그래밍 언어 특성 (1) | 2024.09.15 |
[실기] 정보보안 - 시스템 보안 구현 (복습) (0) | 2024.09.15 |
[실기] 정보보안 - 서비스 공격 유형 (1) | 2024.09.15 |