본문 바로가기

스터디스터디/정처기

[실기] C언어

 

최초 작성일: 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언어에서는 0false(거짓)으로 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()