Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍

  1. C/C++ switch 문에서 변수 선언이 제한되는 이유와 올바른 사용법

    C/C++의 switch 문에서도 변수를 선언할 수 있습니다. 다만, 변수를 선언하려면 반드시 새로운 스코프(scope), 즉 중괄호 {}로 묶인 블록 내부에서 선언하고 사용해야 합니다.예제 코드#include<iostream> using namespace std; int main() { int i = 10; switch(i) { case 2: // some code break; case 10: { int x = 13; //

  2. C/C++에서 디렉터리의 파일 목록을 가져오는 방법 완벽 정리

    개요표준 C++은 특정 디렉터리에 있는 파일 목록을 조회하는 기능을 기본적으로 제공하지 않습니다. 하지만 몇 가지 방법을 통해 이 작업을 손쉽게 수행할 수 있습니다. 가장 간단한 방법은 system() 함수를 사용해 운영체제의 셸 명령을 호출하는 것입니다.방법 1: system() 함수로 ls 명령 실행하기Linux나 macOS 환경이라면 system() 함수를 통해 ls 명령을 실행하여 파일 목록을 화면에 출력할 수 있습니다.예제 코드#include<iostream> int main () {    ch

  3. C/C++ 코어 덤프 디버깅 방법 완벽 가이드

    C/C++에서 코어 덤프(Core Dump)란 무엇인가?프로그램에 오류가 발생하면 운영체제는 해당 프로세스를 강제로 종료시키면서 코어 덤프(core dump)를 생성합니다. 코어 덤프가 발생하는 가장 대표적인 원인은 프로그램이 NULL 포인터처럼 유효하지 않은 포인터 값에 접근하거나, 자신에게 할당된 메모리 영역을 벗어난 주소를 참조하는 경우입니다.운영체제는 프로세스가 비정상 종료될 때 당시의 메모리 상태와 실행 정보를 파일로 저장하여, 개발자가 문제의 원인을 분석할 수 있도록 도와줍니다.코어 덤프를 활용한 디버깅 방법생성된 코어

  4. C/C++에서 세그먼테이션 오류(Segmentation Fault)란 무엇일까?

    세그먼테이션 오류란?세그먼테이션 오류(Segmentation Fault, 줄여서 세그 폴트)는 프로그램이 접근 권한이 없는 메모리 영역에 접근하려고 할 때 발생하는 런타임 오류입니다. 즉, 운영체제가 프로그램에 할당해 준 메모리 범위를 벗어난 주소를 읽거나 쓰려고 하면, 운영체제가 이를 감지하여 프로그램을 강제로 종료시킵니다.세그먼테이션 오류의 주요 원인세그 폴트는 대부분 포인터를 잘못 사용할 때 발생합니다. 대표적인 원인은 다음과 같습니다.초기화되지 않은 포인터 사용: 포인터를 선언만 하고 유효한 메모리 주소로 초기화하지 않은 상

  5. C/C++ 컴파일·링크 프로세스, 한 번에 이해하기

    C++ 프로그램의 빌드 과정은 크게 전처리(Preprocessing), 컴파일(Compilation), 링킹(Linking)의 세 단계로 나뉩니다. 각 단계가 어떤 역할을 담당하는지 하나씩 살펴보겠습니다.1. 전처리(Preprocessing)전처리기(C Preprocessor)는 간단히 말해 텍스트 치환 도구입니다. 실제 컴파일이 시작되기 전에 필요한 사전 작업을 수행하도록 컴파일러에 지시하는 역할을 합니다.이 단계에서는 #include, #define 등의 전처리 지시문(directive)이 처리됩니다. 예를 들어 헤더 파일의 내

  6. C/C++ 세그먼테이션 오류(Segmentation Fault)의 대표적인 원인 정리

    세그먼테이션 오류란 무엇인가? 세그먼테이션 오류(Segmentation Fault, 흔히 세그폴트라고 부름)는 프로그램이 운영체제로부터 접근 권한을 받지 못한 메모리 영역에 접근하려고 할 때 발생하는 대표적인 런타임 오류입니다. 가장 핵심적인 원인은 다음과 같습니다. 초기화되지 않은 메모리에 접근하는 경우 프로그램에 할당된 메모리 범위를 벗어나 접근하는 경우 변경이 금지된 문자열 리터럴(string literal)을 수정하려고 시도하는 경우 이러한 동작이 반드시 세그먼테이션 오류를 유발하는 것은 아니며, 경우에 따라 정상적으로

  7. C 언어에서 문자열을 정수로 변환하는 방법: strchr()와 atoi() 활용하기

    C 프로그래밍에서는 문자열에 포함된 숫자 부분만 추출해 정수로 변환해야 하는 경우가 자주 발생합니다. 예를 들어 The Matrix(1999)처럼 제목 뒤에 연도가 붙은 문자열에서 연도 값만 분리하려면 strchr() 함수와 atoi() 함수를 조합하면 간단하게 처리할 수 있습니다.1단계: strchr()로 왼쪽 괄호 ( 위치 찾기먼저 strchr() 함수를 사용해 문자열에서 왼쪽 괄호 (가 처음 나타나는 위치를 찾아 그 이후 부분에 대한 포인터를 얻습니다.char *name=The Matrix(1999);char *ps;ps=st

  8. C 언어로 문장에서 공백, 대문자, 소문자 개수 세는 방법

    C 프로그래밍에서 문자열을 분석하는 것은 기초적이면서도 자주 활용되는 작업입니다. 이번 글에서는 사용자가 입력한 문장에서 대문자, 소문자, 숫자, 공백, 특수문자의 개수를 각각 세어 출력하는 C 프로그램을 소개합니다. 전체 코드 #include <stdio.h> int main() { char str[100]; int i; int upper = 0, lower = 0, number = 0, special = 0, whitesp = 0; printf(enter string); gets

  9. C 언어 기초: 변수와 키워드의 개념 및 사용법

    변수(Variables) C 언어에서 변수(variable)는 다양한 형태의 데이터를 저장하는 메모리 공간입니다. 변수의 자료형에 따라 필요한 메모리 크기가 달라지며, 각 변수에는 해당 자료형에 맞는 연산을 수행할 수 있습니다. 변수 이름은 숫자로 시작할 수 없으며, 영문 알파벳, 숫자, 밑줄(_)의 조합으로만 구성해야 합니다. C 언어에서 변수를 선언하는 기본 문법은 다음과 같습니다. type variable_name; 여러 개의 변수를 한 번에 선언할 때는 쉼표(,)로 구분하여 작성합니다. type variable_name1,

  10. C 언어의 토큰(Tokens) 완벽 정리: 키워드, 식별자, 문자열

    토큰(Token)은 프로그램을 구성하는 가장 작은 단위 요소로, 컴파일러가 의미 있게 해석하는 기본 구성 요소입니다. C 언어의 소스 코드는 이러한 토큰들이 모여 이루어지며, 컴파일러는 토큰 단위로 코드를 분석합니다.토큰의 주요 종류는 다음과 같습니다.키워드(Keywords)식별자(Identifiers)상수(Constants)문자열(Strings)연산자(Operators)그럼 하나씩 자세히 살펴보겠습니다.키워드(Keywords)키워드는 C 언어에서 미리 정의된 예약어(reserved word)로, 각각 고유한 기능과 역할이 부여되어

  11. C 언어 데이터 타입 완벽 정리: 종류, 크기, 범위와 예제 코드

    C 언어의 데이터 타입이란?C 언어에서 모든 변수는 반드시 데이터 타입(data type)과 함께 선언됩니다. 데이터 타입은 해당 변수가 차지하는 메모리의 크기와 수행할 수 있는 연산의 종류를 결정하며, 변수에 어떤 종류의 값(정수, 문자, 실수 등)을 저장할 것인지 컴파일러에게 알려주는 중요한 역할을 합니다.C 언어의 기본 데이터 타입C 언어에서 가장 널리 사용되는 대표적인 데이터 타입은 다음과 같습니다.int − 정수(integer) 값을 저장하는 데 사용됩니다.char − 단일 문자 하나를 저장하는 데 사

  12. C 언어 타입 캐스팅 완벽 정리: 암시적 변환과 명시적 변환

    타입 캐스팅(Typecasting)은 C 언어에서 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 방법입니다. 프로그래밍 과정에서 서로 다른 자료형 간의 연산이 필요할 때 매우 유용하게 활용됩니다.C 언어의 타입 캐스팅은 크게 두 가지 방식으로 나뉩니다.1. 암시적 타입 캐스팅 (Implicit Type Casting)암시적 타입 캐스팅은 컴파일러가 자동으로 수행하는 형변환입니다. 하나의 표현식 안에 두 개 이상의 서로 다른 데이터 타입 변수가 함께 사용될 경우, 컴파일러는 데이터 손실을 방지하기 위해 자동으로 데이터 타입을 변

  13. C 언어 sizeof 연산자 완벽 정리 – 변수·타입·표현식 크기 계산법

    sizeof 연산자는 C 언어에서 가장 널리 사용되는 연산자 중 하나입니다. 컴파일 타임에 평가되는 단항(unary) 연산자로, 피연산자의 크기를 바이트 단위로 계산하는 데 사용됩니다. 변수가 차지하는 메모리 크기를 반환하며, int나 double 같은 기본 데이터 타입은 물론 float, 포인터 타입 변수 등 어떤 자료형에도 적용할 수 있습니다. sizeof()를 데이터 타입과 함께 사용하면 해당 타입에 할당되는 메모리의 크기를 그대로 반환합니다. 다만 실행 환경에 따라 결과가 달라질 수 있습니다. 예를 들어 동일한 데이터 타입

  14. C 언어 스토리지 클래스(Storage Class) 완벽 정리: auto, extern, static, register

    C 언어에서 스토리지 클래스(storage class)는 변수나 함수의 가시성(visibility)과 범위(scope)와 같은 특성을 정의하는 키워드입니다. 즉, 변수가 어디에서 접근 가능한지, 얼마나 오래 메모리에 유지되는지 등을 결정합니다.C 언어의 스토리지 클래스는 크게 네 가지로 나뉩니다.자동 변수 (Automatic, auto)외부 변수 (External, extern)정적 변수 (Static, static)레지스터 변수 (Register, register)각각의 특징을 예제 코드와 함께 자세히 살펴보겠습니다.1. auto

  15. C 언어의 전위 증가(Pre-increment)와 전위 감소(Pre-decrement) 연산자 완벽 정리

    C 언어에서 증가 연산자(increment operator)는 변수의 값을 1만큼 늘리는 역할을 하며, 감소 연산자(decrement operator)는 그 반대로 값을 1만큼 줄이는 역할을 합니다.증가와 감소 연산자는 각각 전위(prefix) 방식과 후위(postfix) 방식으로 사용할 수 있는데, 이번 글에서는 전위 방식에 대해 자세히 알아보겠습니다.전위 증가·감소 연산자의 문법C 언어에서 전위 증가 연산자의 기본 문법은 다음과 같습니다.++variable_name;전위 감소 연산자의 기본 문법은 다음과 같습니다.--variab

  16. C 언어 extern 키워드 완벽 정리: 전역 변수의 선언과 정의

    C 언어의 extern 키워드란? 외부 변수(external variable)는 흔히 전역 변수(global variable)라고도 부릅니다. 전역 변수는 함수 바깥쪽에서 정의되며, 프로그램이 실행되는 동안 어디에서든 접근할 수 있습니다. 또한 함수 안에서 전역 변수의 값을 자유롭게 변경할 수도 있습니다. C 언어에서는 이러한 외부 변수를 선언하거나 정의할 때 extern 키워드를 사용합니다. 전역 변수의 주요 특징 범위(Scope) – 특정 함수에 종속되지 않고 프로그램 전체, 즉 전역 범위에서 유효합니다. 기본값(Default

  17. C 언어 관계 연산자와 논리 연산자 완벽 가이드: 개념부터 실전 예제까지

    관계 연산자(Relational Operators)란?관계 연산자는 C 언어에서 두 값 사이의 관계를 비교할 때 사용하는 연산자입니다. 두 값의 대소 관계나 동등 여부를 검사하며, 조건이 참(true)이면 1, 거짓(false)이면 0을 반환합니다.C 언어에서 제공하는 관계 연산자는 다음과 같습니다.연산자연산자 이름==같음 (Equal to)>크다 (Greater than)<작다 (Less than)!=같지 않음 (Not equal to)>=크거나 같음 (Greater than or equal to)<=작거나

  18. C 언어 비트 연산자 완벽 정리: 종류, 예제 코드, 실행 결과 분석

    비트 연산자(Bitwise Operator)는 두 변수에 대해 비트(bit) 단위의 연산을 수행하는 데 사용됩니다. C 언어는 정수 데이터를 이진수로 다루면서 각 비트별로 논리 연산이나 시프트 연산을 직접 적용할 수 있기 때문에, 저수준 프로그래밍이나 임베디드 시스템 개발에서 특히 유용하게 활용됩니다. C 언어의 비트 연산자 종류 연산자연산자 이름&비트 AND|비트 OR^비트 XOR~비트 보수(Complement)<<왼쪽 시프트(Shift Left)>>오른쪽 시프트(Shift Right) 연산자별 동작

  19. C 언어의 fseek() 함수 – 파일 포인터를 원하는 위치로 이동하기

    C 언어에서 fseek() 함수는 파일 포인터를 특정 위치로 이동시키는 데 사용됩니다. 함수 호출 시 스트림(stream)과 오프셋(offset)이 매개변수로 전달되며, 이 값들을 기준으로 포인터가 이동합니다. 함수 실행에 성공하면 0을 반환하고, 실패하면 0이 아닌 값을 반환합니다.fseek() 함수의 문법int fseek(FILE *stream, long int offset, int whence)매개변수 설명stream − 대상 파일 스트림을 식별하는 포인터입니다.offset − 기준 위치(whence)로부

  20. C 언어 ftell() 함수 완벽 정리 – 파일 위치 확인과 파일 크기 구하기

    C 언어 ftell() 함수란?C 언어에서 ftell() 함수는 지정된 스트림(stream)의 파일 시작 지점을 기준으로 현재 파일 위치를 반환하는 함수입니다. 이 함수는 파일 포인터를 파일 끝으로 이동시킨 후 파일의 전체 크기를 구할 때 특히 유용하게 사용됩니다.ftell()은 현재 위치를 long 타입으로 반환하기 때문에, 32,767바이트(32KB)를 초과하는 대용량 파일도 문제없이 처리할 수 있다는 장점이 있습니다.ftell() 함수 문법long int ftell(FILE *stream)매개변수stream – 스트림을 식별하

Total 1443 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:2/73  20-컴퓨터/Page Goto:1 2 3 4 5 6 7 8