프로그래밍 언어 이해는 정보처리기사 실기 시험에 많이 나오기 때문에 꼭 한 번은 읽어봐야 하는 것 같다.
C 언어는 전처리 부분 + 본문으로 구성되어 있다.
헤더는 xxx.h 파일로 되어있고, 헤더 안에는 프로그래밍에 필요한 함수들이 포함되어 있다.
전처리기 (Preprocessor)
C언어에서 #이 붙으면 전처리 지시문 (전처리기)라고 한다.
종류
- #include : 헤더 파일을 포함할 때 사용하는 전처리기
- #define :
- 매크로를 정의할 때 사용.
- 상수값을 지정하기 위한 예약어.
자료형
유형 | 설명 | 선언 형식 |
문자 (Character) |
- 문자 하나를 저장하고자 할 때 사용 - 메모리에 저장은 숫자로 저장 |
char |
정수 (Integer) |
- 정수 값을 저장할 때 사용 | int |
부동 소수점 (Floating Point) |
- 소수점을 포함하는 실수값을 저장하고자 할 때 사용 | float, double |
표기법
- 카멜 표기법 (Camel Case) : 첫 단어 시작만 소문자, 그 뒤의 단어는 대문자
- ex : memberStatus, memberType, accountAmount 등
- 파스칼 표기법(Pascal Case) : 여러 단어가 이어지면 각 단어의 첫글자는 대문자로
- ex : MemberStatus, MemberType, AccountAmount 등
- 스네이크 표기법(Snake Case) : 여러 단어가 이어지면 단어 사이에 언더바 넣음
- ex : member_status, member_type, account_amount 등
- 헝가리안 표기법 (Hungarian Case) : 식별자 표기 시 두어에 자료형 붙이는 방법
- int : n , char c, 문자열 sz
- nScore, szName 등
표준 출력 함수 (printf)
지정된 포맷 스트링으로 데이터를 출력하는 함수
이스케이프 문자를 이용한 출력
\n : 커서를 다음 줄의 맨 앞으로 이동(개행문자)
\t : 커서를 tab 간격만큼 이동
포맷 스트링을 이용한 변수 출력
문자(Character) : %c - 문자 한 글자에 대한 형식
문자열(String) : %s - 문자열에 대한 형식
정수
Unsigned Decimal : %u 부호 없는 10진수 정수
Decimal : %d 10진수 정수
Octal : %o 8진수 정수
Hexa Decimal : %x, %X 16진수 정수
부동 소수점
%e , %E Exponenet : 지수 표기
%f : Floating Point 부동 소수점
$lf : Long Floating Point 긴 부동 소수점 표기
포맷 스트링 변수 상세 출력
%[-][0][전체자리수][소수점자리수]문자열
#include <studio.h>
void main() {
float a = 1.2345;
printf("%.2f\n", a); // 1.23
printf("%5.1f\n", a); // 1.2
printf("%05.1f\n", a); //001.2
printf("%-05.1f\n", a); //1.2
}
위에서
- .2f 는 소수점 둘째자리까지 표시하라는 것이다.
- 5.1f는 전체 출력 문자가 5글자까지인데, 소수점 첫재짜리까지 나타내라는 것이다.
- 05.1f는 위와 동일하지만, 앞의 공백을 0으로 채우라는 것이다.
- -05.1f는 왼쪽정렬로 하고 앞의 공백을 0으로 채우라는 것인데, - (왼쪽정렬) 로 앞의 공백이 없기 때문에 1.2가 나온다.
배열
int a[3] = {1,2};
int b[3]; // 쓰레기 값으로 초기화 됨
위와 같이요소 갯수보다 적게 초기화를 하면 각 자료형의 기본 값으로 초기화 된다
- int : 0
- 실수 : 0.0
- 문자형 : NULL
2차원 배열
int a[2][3] = {1, 2, 3, 4};
int b[2][3]; // 쓰레기 값으로 초기화 됨
2차원 배열도 그냥 배열과 같다.
a의
- a[0][0] = 1
- a[0][1] = 2
- a[0][2] = 3
이런식으로 채워지고, a[1][0] 은 4가 들어간다.
배열은 이미 다 썼기 때문에 나머지 a[1][1], a[1][2]는 int의 기본 값인 0이 들어간다.
문자열
문자열은 char형 배열로 표현된다.
문자열 초기화할 때 마지막에 NULL이 삽입되어 초기화하는 글자 수보다 1 이상 큰 값으로 배열을 선언한다.
printf의 %s로 문자열을 읽고 출력할 떄, 시작 주소부터 NULL직전까지의 값을 읽어서 출력함.
구조체
기본 자료형을 가지고 새롭게 정의할 수 있는 자료형
struct 구조체이름 {
char gender;
int height;
};
void main() {
struct Student s = {'F', 160};
s.gender = 'M';
printf("%c", s.gender);
printf("%d", s.height);
}
함수
매개변수 전달 방법
전달인자(Argument) - 실제 매개변수라고 불림. 함수를 호출하는 쪽에서 전달하는 변수 값 또는 변수의 주소값
매개변수(Parameter) - 형식 매개변수, 함수를 호출받는 쪽에서 전달받는 변수 값 또는 변수 주소의 값
int sum (int x, int y){ // 매개변수 parameter
return x + y;
};
void main() {
int x = 5;
int y = 3;
int sumResult = sum(x, y); // 인자 argument
printf("%d", sumResult);
}
- 매개변수 전달 방법 종류
Call by Value - 값을 넘겨 새로운 공간에 할당해 사용하는 방식, 변화가 있어도 원래 넘긴 쪽에서 변화가 일어나지 않음. - Call by Reference - 변수가 사용중인 주소값을 넘겨주는 방식, 변화가 생기면 넘긴 쪽에서 변화가 일어남.
포인터
포인터는 변수의 주솟값을 저장하는 공간이다.
선언
자료형* 포인터_변수명 = &변수명;
void main() {
int x = 15;
int* y = &x;
printf("%d %d %d", x, *y, *(&x); // 10 10 10
}
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
정보처리기사 실기 - 소프트웨어 개발 보안 구현 (SW 개발 보안 테스트 & 결함 관리) (0) | 2023.07.20 |
---|---|
정보처리기사 실기 - 소프트웨어 개발 보안 구현 (시스템 보안 구현) (0) | 2023.07.19 |
정보처리기사 실기 - 소프트웨어 개발 보안 구현 (SW 개발 보안 구현) (0) | 2023.07.17 |
정보처리기사 실기 - SW 개발 보안 설계 (0) | 2023.07.15 |
정처기 실기 - 소프트웨어 개발 방법론 ( 객체 지향 분석 방법론) (0) | 2023.07.09 |