본문 바로가기
IT & AI/AI 지식

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

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

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 언어 공부 기본 개념 및 프로그램, 데이터 입출력 소개 이미지