스터디/C(basic)

입출력 함수와 연산자, 제어구조

elenalee 2024. 4. 14. 18:53

함수 

- 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램 

- 표준함수 : 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