학습 기록/C

C (1) 개요와 기초

romi__ 2024. 11. 5. 17:59

/C

 

📌 C 프로그램의 특징

- C의 기본 단위 = 함수

모든 C 프로그램은 main 함수를 갖고 있어야 한다. 컴퓨터가 C 실행 시에 제일 먼저 main 함수를 호출한다.

 

- 함수 내 각 명령문은 세미콜론(;)으로 끝나야 한다

명령문은 기능 정의를 위해 사용되는 문장으로, 위에서 아래로 순차적으로 실행된다.

 

- 대소문자 구분

 

- 자유 형식(free-format) 허용

문법만 맞으면 어떻게 쓰더라도 상관없다. 그렇지만 코드의 가독성을 챙기는 것이 좋다.

 

- 주석

//한 줄 주석은 이렇게 작성한다

/*
여러 줄
주석은
이런 식으로
작성한다
*/

/*
주석 안에
//주석을 중첩하는 것도
가능하다
*/

다만 여러 줄 주석 안에 여러 줄 주석을 중첩하는 것은 불가능하다는 것을 유념해야 한다. (인식 상 오류 발생)

 

 

📌 printf() 함수

- C언어에서의 대표적인 입출력 함수로, 여러 종류의 데이터를 다양한 서식에 맞춰 출력한다.

 

- printf() 함수의 원형은 다음과 같다:

#include <stdio.h>
int printf(const char * restrict format, ...);

 

- printf에서의 f는 format의 약자이다. 서식화된 출력을 지원하며, 어떤 서식을 출력할지 지정하는 것이 가능하다.

printf("printf() 함수의 서식 지정 \n");
printf("변수에 저장된 숫자는 %d입니다.", 10);

//printf() 함수의 서식 지정
//변수에 저장된 숫자는 10입니다.

 

 

- 이스케이프 시퀀스: 특수문자나 들여쓰기 등을 표현하기 위해 만들어짐

이스케이프 시퀀스 출력 내용
\' 작은 따옴표
\" 큰 따옴표
\? 물음표
\\ 백슬래시(\)
\a 경고음 발생
\b 백스페이스
\n 줄바꿈(new line)
\r 캐리지 리턴(맨 앞으로 이동)
\t 수평 탭
\v 수직 탭
\f 폼 피드(현재 페이지 마침 - 다음 페이지로)

 

위의 이스케이프 시퀀스 중 \f와 \v는 출력 시에만 의미가 있다.

 

예시를 살펴보자.

printf("C언어에서 사용하는 \"특수 문자\"에는 여러가지가 있습니다.\n");
printf("\t특수 문자의 바로 앞에는 언제나 \\가 와야 합니다.");

//C언어에서 사용하는 "특수 문자"에는 여러가지가 있습니다.
//    특수 문자의 바로 앞에는 언제나 \가 와야 합니다.

 

 

 

- %d와 같은 서식 지정자는 여러 개를 사용할 수 있다. 다만 순서에 유의해야 한다.

서식 지정자 출력 데이터 형태
%c 하나의 문자
%s 문자열
%d, %i 부호가 있는 10진 정수
%f 고정 소수점으로 표현한 실수(소수점 이하 6자리까지)
%o 부호 없는 8진 정수
%u 부호 없는 10진 정수
%x, %X 부호 없는 16진 정수
%e, %E 부동 소수점으로 표현한 실수
%% %(퍼센트) 기호 출력

 

예시를 살펴보자

printf("저장된 정수는 %d이며, 저장된 문자열은 %s언어입니다.\n", 123, C);

//저장된 정수는 123이며, 저장된 문자열은 C언어입니다.

 

 

 

 

📌 scanf() 함수

- C언어에서의 표준 입력함수. 원형은 아래와 같다.

#include <stdio.h>
int scanf(const char * restrict format, ...);

 

- 데이터를 입력받으려면 입력받고자 하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당받아야 한다. 이렇게 할당받은 공간을 변수라고 부른다.

 

- & 주소연산자는 입력받은 데이터를 뒤의 변수에 저장한다.

 

- printf와 마찬가지로 서식지정자를 여러 개 사용할 수 있다. 입력 구분은 공백으로 한다. 다만 scanf 함수로 double 형 실수를 입력받을 땐 반드시 %lf 서식 지정자를 사용해야 정확한 값을 입력받을 수 있다.

 

#include <stdio.h>

int main(void)

{

    int num01, num02;

 

    printf("두 개의 정수를 입력하세요 : ");

    scanf("%d %d", &num01, &num02);

 

    printf("입력하신 두 정수를 8진수로 나타내면 %o와 %o가 되고,\n", num01, num02);

    printf("입력하신 두 정수를 16진수로 나타내면 %x와 %x가 됩니다.\n", num01, num02);

    return 0;

}  

//두 개의 정수를 입력하세요 : 10 20

//입력하신 두 정수를 8진수로 나타내면 12와 24가 되고,

//입력하신 두 정수를 16진수로 나타내면 a와 14가 됩니다.

'학습 기록 > C' 카테고리의 다른 글

(6) 배열  (0) 2024.11.10
(5) 함수  (0) 2024.11.09
(4) 제어문  (0) 2024.11.08
(3) 연산자  (0) 2024.11.07
(2) 타입  (1) 2024.11.06