1. C언어 기본
- 전처리 부분 + 본문 구성
- 헤더 : xxx.h 파일 > 함수로 구성
(1) 전처리기 (Preprocessor)
- 전처리기 종류
1. #include - 헤더 파일에 사용
2. #define - 매크로 정의에 사용 & 상숫값 지정 예약어
#include <stdio.h>
#define A 5
int main(){
printf('honxypot %d', A);
return 0;
}
# hoxypot A
- stdio.h 헤더 파일 읽기 > stdio.h 헤더 파일 내 printf 함수 존재
- A를 5로 정의
- main 함수 시작
- printf로 hoxypot 문자열 + %d A 10진수 출력
- int main() 이므로 return 으로 0 반환
2. 자료형 (Data Type)
- 실수, 정수 등 데이터 식별 형태
- 자료형 유형
1. 문자 (Character) > char
- 문자 하나 저장, 메모리에는 숫자로 저장
2. 정수 (Integer)> int
- 정숫값 저장
3. 부동 소수점 (Floating Point)> float, double
- 소수점 포함 실숫값 저장
3. 식별자 (Identifier)
- 변수, 상수, 함수 등
- 프로그램 구성요소 식별하기 위해 사용
(1) 식별자 명명 규칙
- 사용 가능 문자 : 영문 대문자/소문자, 숫자, 밑줄 '_'
- 변수 사용 규칙 : 첫 자리는 숫자 x, 변수 중간에 공백 x
- 변수 의미 부여 : 예약어 변수로 사용 불가
ex. int, short, long, for, while, do, if....
* 예약어
: 프로그래밍 언어에서 이미 문법 용도로 사용되고 있는 단어
ex. 자료형, 조건문, 반복문, 함수 반환 값 등
(2) 식별자 표기법
1. 카멜 표기법
첫 단어 시작은 소문자, 각 단어 첫 글자는 대문자로 지정
ex. inputFunction
2. 파스칼 표기법
각 단어 첫 글자는 대문자로 지정
ex. InputFunction
3. 스네이크 표기법
각 단어 사이에 언더바 삽입
ex. input_function
4. 헝가리안 표기법
식별자 두어에 자료형 삽입
int는 n, char은 c, 문자열은 sz
ex. nScore
4. 변수(Variable)
- 값을 주기억장치에 기억하기 위한 공간
- 자료형과 변수명으로 생성
int a = 10;
a : 데이터가 들어갈 공간, 변수명
10 : 데이터 값
(1) 변수 선언
- 초기화 O : 자료형 변수명 = 초깃값;
- 초기화 X : 자료형 변수명;
* 초기화
: 변수 선언과 동시에 값 지정
#include <stdio.h>
int main(){
char a;
int b=4;
float c,d;
double e=1.1, f=2.4;
return 0;
}
- stdio.h 헤더 파일 사용
- main 함수 시작
- 문자형 변수 a 선언
- 정수형 변수 b 선언 후 4로 초기화, 실수형 변수 c,d 선언
- double(실수형) 변수 e,f 선언 및 각각 1.1, 2.4로 초기화
(2) 변수 유효범위
1. 전역 변수 (Global Variable)
- 어떤 블록에도 속하지 않음
- 프로그램 시작 시 생성, 종료 시 소멸
- 초기화 X 시, 0 & NULL 로 초기화
- 어디든 사용
*블록
: 중괄호 { } 로 묶은 부분
#include <stdio.h>
int a=5;
void fn(){
a=a+3;
}
int main(){
a=a+5;
fn();
printf('%d',a);
return 0;
}
# 13
- a 전역 변수에 5 대입
- main 부터 시작
- a=5+5=10
- fn 사용자 정의 함수 호출
- a=10+3=13
- a인 13 출력
2. 지역 변수 (Local Variable)
- 블록 내 선언 변수
- 블록 시작 시 바로 선언, 중괄호 닫히면 소멸
- 블록 안에서만 사용
#include <stdio.h>
int main(){
int a=3, b=4;
{
int a=5;
printf('%d %d\n',a,b);
}
printf('%d %d\n', a,b);
return 0;
}
# 5, 4
# 3, 4
- main부터 시작
- main 함수 안 a=3, b=4 지역 변수 생성
- main 함수 안의 블록에서 a=5 지역 변수 생성 <> 위와 별개의 지역 변수
- a,b 호출했으나 a는 가까운 2번 지역변수 호출로 5, b는 main 함수 안 지역변수인 4 호출
- 블록 종료로 2번째 a 지역변수는 소멸
- a 호출에 첫 번째 지역변수인 3, b는 main 지역 변수 4 호출
- main 종료로 a,b 둘다 소멸
3. static 변수 (Static Variable)
- 블록 내외부 상관 없이 선언
- 변수 선언 시 앞에 static 붙이기
- 프로그램 시작, 종료와 동시에 생성/소멸
- 전역 변수로 선언 시, 프로그램 전체 / 지역 변수로 선언 시, 블록 내에서만 사용
#include <stdio.h>
void fn(){
static int a=3;
a=a+1;
printf('%d\n',a);
}
int main(){
fn();
fn();
return 0;
}
# 4
# 5
- static 변수는 프로그램 시작과 동시 생성, a=3
- main 부터 시작
- fn 사용자 정의함수 호출
- a=3+1=4, 4 출력 (*static 변수 생성과 함께 초기화 했으므로 더 이상 초기화 X)
- fn 사용자 정의함수 호출
- a=4+1=5, 5 출력 (*초기화 X)
- 프로그램 종료와 함께 a 변수 소멸
static 변수는 생성과 함께 초기화 되고 더 이상 초기화되지 않는다
*초기화는 한 번만 수행*
5. 표준 입출력 함수
(1) printf 함수
- 지정 포맷 스트링으로 데이터 출력
- stdio.h 헤더 (Standard input output) 선언
1. 단순 출력
printf(문자열);
따옴표 안 문자열 출력
2. 이스케이프 문자 이용 출력
- 문자열 내 특수 기능 수행
- 이스케이프 문자 종류
1. ₩n : 개행문자, 커서 다음 줄로 이동
2. ₩t : tab, 일정 간격 커서 이동 (리눅스 4칸, 윈도우 8칸)
#include <stdio.h>
int main(){
printf('honxypot\tC\lcrvvxln');
return 0;
}
#honxypot C
#lcrvvxln
3. 포맷 스트링 이용 변수 출력
- 인자에 변수명, 값, 수식 등
* 포맷 스트링
scanf로 사용자 입력 받아들이기
printf로 결과 출력 에 사용
- 포맷 스트링 종류
1. 문자 (Character) - %c
: 문자 1글자
2. 문자열 (String) - %s
: 문자 여러 개인 문자열
3. 정수 (Integer)
%u - unsigned decimal : 부호 없는 10진수 정수
%d - decimal : 10진수 정수
%o - octal : 8진수 정수
%x - hexa decimal : 16진수 정수, 영어 표기 소문자
%X - hexa decimal : 16진수 정수, 영어 표기 대문자
4. 부동 소수점 (Floating Point)
%e - exponent : e로 지수 표기
%E - exponent : E로 지수 표기
%f - floating point : 부동 소수점 표기
%lf - Long Floating Point : 부동 소수점 표기
#include <stdio.h>
int main(){
int a=4, c=5;
char b='A';
printf('a는 %d, b는 %c입니다.' a,b);
printf('%d', a+c);
return 0;
}
# a는 4,b는 A입니다
# 9
- main 부터 시작
- a=4, c=5 정수형 변수 선언
- b=A 문자형 변수 선언
- 포맷 스트링 자리 %d는 10진수 정수 a , %c는 문자형 b 대입
- 포맷 스트링 자리 %d에 a+c=9 인 10진수 정수 값 대입
4. 포맷 스트링 이용 변수 상세 출력
- 정렬
- 0 채우기
- 출력 공간 확보
- 소수점 자릿수 표기 지정
%[-][0][전체자리수].[소수점자리수] 스트링
1. [-] 정렬
: [-] 붙으면 왼쪽 정렬, 없고 [전체자리수] 있을 경우, 오른쪽 정렬
2. [0] 0 채우기
: [0] 붙으면 전체 자릿수에서 '앞' 빈공간 만큼 0 채우기
3. [전체자리수]
: [전체자리수] 만큼 공간 확보, 소수점도 한 가지로 포함
4. .[소수점자리수]
: [소수점자리수] 만큼 소수점 이하 자리수 출력, 실수형만 적용
#include <stdio.h>
int main(){
float a=1.234;
int b=10;
printf('%.2f\n',a);
printf('%5.1f\n',a);
printf('%05.1f\n',a);
printf('%-05.1f\n',a);
printf('%5d\n',b);
printf('%05d\n',b);
printf('%-5d\n',b);
printf('%-05d\n',b);
return 0;
}
#1.23
# 1.2
#001.2
#1.2
# 10
#00010
#10
#10
- 실수형 변수 a=1.234 선언
- 정수형 변수 b=10 선언
- 소수점 이하 2자리수이므로 1.234 반올림해서 1.23 출력
- 전체 5자리에 소수점 이하 1자리수이므로 1.23 반올림한 1.2를 오른쪽 정렬해서 2칸 띄우고 1.2 출력
- 전체 5자리에 소수점 이하 1자리수이므로 1.23 반올림한 1.2를 오른쪽 정렬하되 앞에 빈칸 2자리에 0 채운 001.2 출력
- 전체 5자리에 소수점 이하 1자리수이므로 1.23 반올림한 1.2를 왼쪽 정렬해서 1.2 뒤에 2칸 띄우고 출력, 왼쪽 정렬이므로 0은 무시
- 전체 5자리에 오른쪽 정렬이므로 3칸 띄우고 10 출력
- 전체 5자리에 오른쪽 정렬하되 앞에 앞에 3자리에 0 채운 00010 출력
- 전체 5자리에 왼쪽 정렬하여 10 뒤에 3칸 띄우고 출력
- 전체 5자리에 왼쪽 정렬하여 10 뒤에 3칸 띄우고 출력, 왼쪽 정렬이므로 0은 무시
(2) scanf 함수
- 키보드 입력 문자열 포맷 스트링으로 데이터 읽는 함수
scanf(포맷 스트링 문자열, 변수 주솟값);
#include <stdio.h>
int main(){
int a;
char b;
scanf('%d %c',&a, %b);
printf('a는 %d, b는 %c입니다.', a,b);
return 0;
}
# 입력 1 B
# a는 1, b는 B입니다.
- 정수형 변수 a 선언
- 문자형 변수 b 선언
- scanf로 10진수 정수, 문자형 입력 받아 &a, &b에 저장하기
- 입력된 1과 B 출력
(3) gets 함수
- 키보드로 입력받은 문자열 문자형 배열에 저장
gets(문자형 배열 변수);
#include <stdio.h>
int main(){
char a[10];
gets(a);
printf('%s', a);
return 0;
}
# 입력 1 B
# 1 B
'WorkOut > 정보처리기사' 카테고리의 다른 글
C언어 | 구조체와 함수 (0) | 2024.03.19 |
---|---|
C언어 | 배열과 문자열 (0) | 2024.03.18 |
C언어 | 조건문과 반복문 (0) | 2024.03.18 |
C언어 | 연산자 종류와 우선 순위 (0) | 2024.03.18 |
프로그래밍을 위한 기본 사항 | 진수 (0) | 2024.03.16 |