함수
- 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램
- 표준함수 : C언어 자체에서 제공하는 함수
- 사용자 정의함수 : 사용자가 정의하여 사용하는 함수
1. 표준 입출력 함수
출력(모니터) : printf(여러 종류 - 정수,실수,문자등 - 의 자료), putchar(1개 문자), puts(문자열)
입력(키보드) : scanf(여러종류의 자료), getchar(1개 문자), gets(문자열)
① printf()함수 : 주어진 출력양식으로 자료를 출력
%d(10진 정수, 정수/문자), %u(부호없는 10진 정수, 정수/문자), %f(실수, 실수),
%e,%E(지수, 지수), %c(한문자, 정수/문자), %s(문자열, 문자열 포인터),
%o(부호없는 8진 정수/문자), %x,%X(16진 정수/문자), 문자열출력 pintf("%s", 변수)
printf("출력양식", 변수1, 변수2, ... );
② scanf()함수 : 주어진 입력양식으로 자료를 입력받아 지정된 기억공간(변수)에 저장
입력양식에 자료형을 의미하는 %문자만 가능, 공백전까지 입력(공백 시 문자열 종료로 파악)
문자열이나 배열명은 이름 자체가 주소의 의미이므로 &생략
VS에서는 scanf 비권장, #pragma warning (disable : 4996) 추가 필요
scanf("입력양식", &변수1, &변수2, ... ); 문자열 입력 scanf("%s", 변수)
③ getchar()함수: 한 문자를 키보드를 통해 입력받음, a= getchar();
④ putchar(문자)함수: 한 문자를 화면에 출력, 변수/연산/제어문자등 다양한 인자사용
(007은 a에 해당)
⑤ gets()함수: 문자열을 키보드로부터 입력받음, char s[50]; gets(s);
** string은 배열이며 끝단에는 /n이 포함 (변수 선언시 제어문자를 포함 용량)
⑥ puts()함수: 문자열을 화면에 출력, char S[50]="seoul"; puts(s);
2. 연산자
임의의 자료에 대해 각종 연산을 수행하도록 하는 기호
산술연산자 : + - * / % ++ --
관계연산자 : > < >= <= == !=
논리연산자 : && || !
대입연산자 : = += -= *= /=. %= <<= >>= &= (비트 and연산), |=, <<=(좌로), >>=(우로), ^* (XOR)
조건연산자 : ? :
비트연산자 : & | ^ ~ << >>
기타연산자 : sizeof() cast. & *
1) 산술연산자
- 피연산자에 대해 사칙연산을 포함한 각종 산술 연산을 수행하는 연산자
- 이항연산자 ( + - * / % ) 단항연산자 ( ++ -- )
2) 관계연산자
- 피연산자에 대한 대,소 관계를 비교하는 연산자
== ( 같은가를 비교), != (다른가의 비교) , >>= <<= (대, 소 관계의 비교)
3) 논리연산자
피연산자에 대해 논리 연산을 수행하는 연산자
&& : 논리곱(AND), 양쪽 모두 참일때 참 (a&&b)
|| : 논리합 (OR), 양쪽중 하나라도 참이면 참 (a||b)
! : 논리부정 (NOT) 오른쪽이 참이면 거짓, 거짓이면 참 ( !a)
4) 대입연산자
연산자 오른쪽을 왼쪽에 대입하는데 사용
산술대입 연산자 : =, +=, -=, *=, /=, %= (나머지를 대입)
비트대입 연산자
5) 조건연산자
주어진 조건의 만족 여부에 따라 지정된 수식을 수행하는 연산자
형식 : (조건) ? 수식 1 : 수식 2
기능 : 조건이 성립하면 (참이면 ) 수식 1을 수행하고
조건이 성립되지 않으면 (거짓이면) 수식 2를 수행한다.
6) 비트 연산자
수치에 대해 bit 단위의 연산을 수행하는 연산자 (논리연산자와 달리 1개씩)
& (비트 AND) : 대응되는 두비트가 모두 1일때만 결과 1 예) a&b
| (비트 OR) : 대응되는 두비트중 하나라도 1이면 결과 1 예) a|b
^ (비트 XOR) : 대응되는 두비트가 서로 다를때 결과 1 예) a^b
~ (비트 NOT) : 1은 0으로, 0은 1로 예) ~a
<< (bit 좌로 이동) : a에 대해 2비트 왼쪽으로 이동 예) a<<2
>> (bit 우로 이동) : a에 대해 2비트 오른쪽으로 이동 예) a>>2
7) 기타 연산자
size of () : 지정한 자료형, 변수, 수식이 차지하는 기억공간의 크기 구함 (byte)
cast (형변환) : 지정한 자료형을 다른 자료형으로 강제적으로 바꿈
& : 주소 연산자로서 피 연산자의 주소를 나타냄
* : 내용 연산자로서 피 연산자의 내용을 가져옴
① size of() : 지정한 자료(자료형, 상수, 변수, 수식)에 대한 기억장소의 크기 확인 예) sizeof(자료)
② cast : 이미 지정된 자료의 자료형을 강제적으로 다른 자료형으로 변환 예) (float) i/j
8) 연산자 우선순위
3. 제어문 (선택제어문과 반복제어문)
프로그램 언어의 제어구조
순차적 제어 : 특별한 지정이 없는 한 위에서 아래로 수행되는 제어구소
선택적 제어 : 주어진 조건에 따라 특정부분으로 수행을 옯기는 분기 제어구조
반복적 제어 : 특정 부분을 일정한 횟수만큼 반복수행하는 반복 제어구조
1) 선택제어문
- if문, switch ~ case문, goto 문
① if문
주어진 조건의 만족여부에 따라 특정 명령문 수행
if (조건) 명령문1 ; 명령문2 ;
if (조건) { 명령문1; .... 명령문 n; } ...
② if문 ~ else 문
주어진 조건이 참인경우 명령문1, 거짓일 때는 명령문 2를 수행
if (조건) 명령문1 ; else 명령문2 ;
③ 다중 if문 ~ else 문
주어진 조건이 참인경우 명령문1, 거짓일 때는 명령문 2를 수행
if (조건1)
if (조건2) 명령문 1; else 명령문2 ;
else 명령문 3;
④ 다중 if문 ~ else if ~ else문
if (조건1) 명령문1 ;
else if (조건2) 명령문2 ;
else if (조건3) 명령문3 ;
else 명령문 4;
⑤ switch ~ case문
주어진 값에 따라 여러곳 중 한곳으로 분기하여 실행
주의점 : 조건이 일치하는 case가 발생하면 나머지 case문이 비교없이 실행 (break문 사용)
switch(수식) {
case 값1 : 명령문 1;
case 값2 : 명령문 2;
...
default : 명령문 n
}
⑥ goto 문
프로그램 수행 도중에 원하는 곳으로 제어를 무조건 옮김
Label :
goto Label;
2) 반복제어문
- for문, while문, do ~ while문
① for 문
주어진 주건이 만족되는 동안 루프문을 반복수행
for (초기식; 조건식 ; 증감식) {
반복 실행문장
}
for (초기식; 조건식 ; 증감식) {
for (초기식; 조건식 ; 증감식) {
for (초기식; 조건식 ; 증감식) {
반복 실행문장
}}}
②while 문
주어진 주건이 만족되는 동안 루프문을 반복수행
while (조건식) {
반복 실행될 문장
}
while (조건식) {
while (조건식) {
반복 실행될 문장
}
반복 실행될 문장
}
③ do ~ while 문
반복문 내의 명령문을 실행한 후 조건을 검사로 반복 수행여부를 결정(1회 반드시 실행)
do {
반복 실행될 문장
} while (조건식) ;
3) 기타 제어문
- break문, continue문
① break문
반복 명령의 실행 도중에 강제적으로 반복문을 빠져 나오는데 사용되며, 자신이
포함된 반복문만 빠져나옴( for, while, do-while, switch 블록등을 강제 종료)
② continue문
루프 실행중에 그 루프의 선두로 제어를 옮겨 다음 반복을 실행
루프 실행 중에 루프를 다시 실행하고자 할때 사용
(switch~case문에서는 사용하지 않으며 반복 구조에만 사용)
'스터디 > C(basic)' 카테고리의 다른 글
동적 할당과 메모리 관리 (0) | 2024.04.19 |
---|---|
Struct & Union (0) | 2024.04.16 |
배열과 포인터 (0) | 2024.04.15 |
함수와 기억 클래스 (0) | 2024.04.15 |
C언어의 기본개요 (0) | 2024.04.13 |