C 언어 기초부터 응용까지: 핵심 개념 정리

컴퓨터 하드웨어 구성 요소 간 관계 이해

운영체제는 하드디스크에 저장된 데이터를 메모리로 불러와 처리합니다. 이후 CPU가 메모리 내 데이터를 계산하고, 결과는 그래픽카드를 통해 화면 출력되며, 모든 장치는 마더보드를 통해 연결됩니다.

Hello World 프로그램 실행 과정

소스 코드는 컴파일러에 의해 실행 파일(.exe)로 변환됩니다. 사용자가 실행하면 운영체제가 해당 파일을 로드하고, CPU가 명령을 차례로 수행합니다.

#include <stdio.h>
int main() {
    printf("C 언어 세계에 오신 것을 환영합니다!\n");
    return 0;
}

데이터 타입의 종류 및 특징

  • 정수형: int (4바이트), short (2바이트), long (8바이트)
  • 실수형: float (4바이트), double (8바이트)
    출력 형식: %a.bf → a는 전체 자릿수, b는 소수점 이하 자리 수
  • 문자형: char (1바이트, 단일 문자), %s로 문자열 출력
  • 복합 데이터 유형: 구조체(구조), 열거형(열거), 공용체(공용)
#include <stdio.h>
int main() {
    int num = 1;
    float value = 1.1f;
    char ch = 'M';
    
    printf("%d\n", num);
    printf("%.2f\n", value);
    printf("%c\n", ch);
    
    return 0;
}

변수의 본질과 정의 방식

변수는 메모리 공간의 이름 붙은 참조입니다. 예를 들어, int x;는 메모리에서 특정 위치를 지칭하는 변수를 생성합니다. 값 할당 후 실행 종료 시 해당 메모리는 재사용됩니다.

#include <stdio.h>
int main() {
    int variable;
    variable = 5;
    printf("변수 값: %d\n", variable);
    return 0;
}

변수 초기화의 중요성

초기화하지 않은 변수는 이전 실행에서 남아 있던 무작위 데이터(쓰레기값)를 포함할 수 있습니다. 운영체제는 메모리 회수 시 내용을 지우지 않기 때문에 반드시 초기값을 설정해야 안정적인 동작이 보장됩니다.

변수 선언 및 초기화 문법

다음은 다양한 변수 선언 방법의 예시입니다:

#include <stdio.h>
int main() {
    int a = 10;
    int b, c;
    int d = 20, e;
    int f, g = 30;
    int h, i; h = i = 40;
    
    printf("h=%d, i=%d\n", h, i);
    return 0;
}

수의 진법 표현

  • 10진수: %d, 예: 2049
  • 2진수: %b (표현은 없지만, 직접 입력 가능), 예: 1011
  • 16진수: %x, 예: 0x3F
  • 8진수: %o, 예: 01235
  • N진수: 일반적으로 %N 형식으로 표현

상수의 표현 방식

  • 정수 상수: 10진수(기본), 16진수(0x 접두사), 8진수(0 접두사)
  • 실수 상수: 3.14 또는 1.23e-4 형태
  • 문자 상수: 'A', "Hello", '\\0'은 문자열 종료 표시

바이트와 비트의 의미

바이트는 메모리 접근의 최소 단위이며, 1바이트 = 8비트입니다. 하드웨어는 비트 단위로 직접 접근이 불가능하며, 항상 바이트 단위로 처리됩니다.

  • 1KB = 1024바이트
  • 1MB = 1024KB
  • 1GB = 1024MB

ASCII 코드의 역할

ASCII는 각 문자에 대해 고유한 정수 값을 부여하는 규칙입니다. 예시:

  • 'A' → 65, 'B' → 66
  • 'a' → 97, 'b' → 98

문자의 메모리 저장 방식

문자는 내부적으로 정수 값으로 저장되며, 실제로는 정수형과 동일하게 처리됩니다.

기본 입출력 함수 사용법

  • printf(): 출력을 위한 함수, 서식 지정 가능
  • scanf(): 키보드 입력을 받아 변수에 저장

태그: C언어 데이터타입 변수 메모리관리 진법

6월 9일 21:07에 게시됨