본문 바로가기

IT & AI/AI 지식

C 언어 기본 개념과 프로그램 구조, 변수, 상수, 데이터 입력과 출력

by 빛나는해커 2024. 11. 17.

안녕하세요! 문과 출신 데이터 전문가와 함께 파이썬에 이어 이번에는 C언어 기본에 대해 알아보고자 합니다. 특히 정보처리기사와 같은 자격증 시험에서 꼭 알아야 할 내용인데요. 

먼저 C언어의 기본 개념부터 시작해서 상수, 변수, 데이터 입출력에 대해 정리해보았습니다. 

1. 프로그램과 C 언어

 

C 언어의 탄생

  • C 언어는 1972년에 데니스 리치(Dennis Ritchie)에 의해 개발되었다.
  • UNIX 운영체제를 개발하기 위해 만들어졌으며, 현재 많은 시스템 프로그래밍의 기초가 되는 언어이다.
  • C 언어는 낮은 수준의 메모리 접근과 효율적인 컴파일이 가능해 다양한 플랫폼에서 사용된다.

C 언어의 장점

  • C 언어는 하드웨어에 가까운 저수준 프로그래밍이 가능하면서도, 높은 이식성을 제공하는 장점이 있다.
  • 또한, 빠른 성능과 유연한 구조 덕분에 시스템 프로그래밍뿐만 아니라 응용 소프트웨어 개발에서도 널리 사용되고 있다.

2. 상수와 데이터 출력

 

C 프로그램의 구조와 데이터 출력 방법

  • C 언어 프로그램은 하나 이상의 함수로 구성되며, 그중 main() 함수가 가장 중요하다.
  • main() 함수는 프로그램의 시작 지점을 의미하며, 모든 C 프로그램은 반드시 main() 함수를 포함해야 한다.
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}
  • 위의 예시는 간단한 C 프로그램의 구조를 보여준다.
  • #include <stdio.h>는 표준 입출력 라이브러리를 포함하는 코드이며, printf 함수는 문자열을 출력하는 역할을 한다.
  • printf() 함수는 C 언어에서 데이터를 출력하기 위한 주요 함수이다.
  • 문자열, 정수, 실수 등을 다양한 형식으로 출력할 수 있다.
printf("정수: %d, 실수: %f\n", 10, 3.14);
  • 위 코드에서 %d는 정수를, %f는 실수를 출력하는 형식 지정자이다.
  • printf는 출력할 데이터의 형식을 지정하여 다양한 형태의 데이터를 화면에 출력할 수 있다.
  • 제어 문자는 출력 시 특수한 역할을 하는 문자로, 대표적인 예로는 줄 바꿈(\n), 탭(\t) 등이 있다.
  • 이러한 제어 문자를 사용하여 출력 형식을 조절할 수 있다.
printf("Hello\nWorld\tC Language\n");
  • 위 코드에서는 Hello와 World가 다른 줄에 출력되며, World와 C Language 사이에 탭 간격이 추가된다.
  • 정수와 실수를 출력할 때는 각각 %d와 %f를 사용한다.
  • 출력할 데이터의 형식에 맞는 형식 지정자를 올바르게 사용하는 것이 중요하다.
int a = 5;
float b = 3.14;
printf("정수: %d, 실수: %f\n", a, b);
  • 이렇게 하면 변수 a와 b의 값을 출력할 수 있다.
 

상수와 데이터 표현 방법

  • 정수 상수는 10진수, 8진수, 16진수로 표현할 수 있다.
  • 8진수는 숫자 앞에 0을 붙여 표현하며, 16진수는 0x를 붙여 나타낸다.
int decimal = 10;   // 10진수
int octal = 012;    // 8진수 (10진수로 10)
int hex = 0xA;      // 16진수 (10진수로 10)
  • 실수 상수는 소수점이나 지수 표기법을 사용하여 표현할 수 있다.
float f1 = 3.14;
double d1 = 1.23e4; // 1.23 * 10^4
  • 문자는 작은따옴표(')로, 문자열은 큰따옴표(")로 표현한다.
char c = 'A';
char str[] = "Hello, World!";
  • 상수는 컴파일되면 메모리에 이진수 형태로 저장된다.
  • 정수 상수와 실수 상수는 각각 정수형과 부동소수점형 비트 구조로 변환된다.
  • 정수 상수는 2진수로 변환되어 메모리에 저장된다.
  • 예를 들어, 10은 4바이트 정수형으로 변환되어 메모리에 저장된다.
  • 실수 상수는 부동소수점 방식으로 메모리에 저장되며, 이는 IEEE 754 표준에 따라 표현된다.

3. 변수와 데이터 입력

 

변수

  • 변수는 데이터를 저장하기 위한 메모리 공간을 의미한다.
  • C 언어에서 변수는 선언 시 자료형과 함께 이름을 정의해야 한다.
int number;
float pi;
char letter;
  • 위 코드에서 int, float, char는 각각 정수, 실수, 문자 자료형을 나타낸다.
  • 정수 자료형에는 int, short, long 등이 있으며, 크기와 표현 범위가 다르다.
  • 각 자료형은 저장할 수 있는 정수 값의 범위가 다르므로 상황에 맞게 사용해야 한다.
  • unsigned 키워드를 사용하면 음수가 아닌 양수만 저장할 수 있는 정수 자료형을 정의할 수 있다.
unsigned int positiveNumber = 100;
  • 실수 자료형에는 float와 double이 있다.
  • double은 float보다 더 많은 소수 자릿수를 저장할 수 있다.
  • 문자열은 char 배열을 사용해 저장한다.
  • 문자열은 마지막에 항상 널 문자(\0)가 포함되어야 한다.
char greeting[] = "Hello";
  • const 키워드를 사용하면 변수의 값을 변경할 수 없게 할 수 있다.
  • 이를 통해 상수를 정의할 수 있다.
const float PI = 3.14;
  • 예약어는 C 언어에서 미리 정의된 단어로, 변수나 함수의 이름으로 사용할 수 없다.
  • 예를 들어 int, return, if 등이 있다.
  • 식별자는 변수, 함수 등을 정의할 때 사용하는 이름으로, 알파벳, 숫자, 밑줄(_)로 구성된다.

 

데이터 입력

  • scanf 함수는 사용자로부터 데이터를 입력받을 때 사용한다.
  • 입력받을 데이터의 형식에 맞는 형식 지정자를 사용해야 한다.
int age;
printf("나이를 입력하세요: ");
scanf("%d", &age);
printf("나이는 %d입니다\n", age);
  • 위 코드에서 scanf는 사용자로부터 정수를 입력받아 age 변수에 저장한다.
  • & 기호는 변수의 주소를 의미하며, 입력받은 값을 해당 주소에 저장한다.
  • 문자와 문자열을 입력받을 때는 각각 %c, %s 형식 지정자를 사용한다.
  • 문자열을 입력받을 때는 배열의 크기를 넘지 않도록 주의해야 한다.
char name[20];
scanf("%s", name);
printf("이름: %s\n", name);
  • 위 코드에서는 최대 20자의 문자열을 입력받아 name 배열에 저장한다.

C 언어 공부 기본 개념 및 프로그램, 데이터 입출력 소개 이미지

반응형