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

C 프로그래밍

  1. C 프로그래밍 함수의 범위 규칙(Scope Rules) 완벽 정리

    지역 범위(Local Scope)지역 범위란 특정 블록(중괄호 {}로 묶인 영역) 내부에서 선언된 변수가 그 블록 안에서만 유효하고, 블록 외부에서는 접근할 수 없음을 의미합니다.전역 범위(Global Scope)전역 범위란 블록 외부, 즉 모든 함수 바깥에서 선언된 변수가 프로그램이 종료될 때까지 어디서든 접근 가능함을 의미합니다.예제 코드#include<stdio.h>int r = 50; /* 전역 영역 */main() {    int p = 30;   &

  2. C 언어에서 전체 배열을 함수 인수로 전달하는 방법

    배열(Array)이란?배열은 하나의 공통된 이름으로 저장되는 관련 데이터 항목들의 집합입니다. C 언어에서 배열을 함수에 인수(argument)로 전달하는 방법은 크게 두 가지가 있습니다.전체 배열을 함수의 인수로 전달하는 방법개별 요소를 함수의 인수로 전달하는 방법전체 배열을 함수 인수로 전달하기전체 배열을 인수로 전달하려면 함수 호출 시 배열 이름만 작성하면 됩니다.함수 쪽에서 배열을 받으려면 함수 헤더(매개변수 선언부)에 반드시 배열을 선언해야 합니다.C 언어에서 배열 이름은 배열의 첫 번째 요소를 가리키는 포인터처럼 동작합니

  3. C 언어에서 배열의 개별 요소를 함수 인수로 전달하는 방법

    개요C 언어에서 배열의 개별 요소를 함수의 인수(argument)로 전달하려면, 함수를 호출할 때 배열 이름 전체가 아니라 첨자(subscript)가 붙은 배열 요소(예: a[0], a[4])를 직접 지정해야 합니다.반대로 호출된 함수 쪽에서는 전달된 값을 받기 위해 일반(단순) 변수를 사용합니다. 즉, 함수 정의부의 매개변수는 배열 형태가 아닌 int형 단순 변수로 선언됩니다.예제 1: 첫 번째 요소와 마지막 요소 전달하기다음 예제는 크기가 5인 배열을 선언하고, 사용자로부터 5개의 값을 입력받은 뒤 첫 번째 요소(a[0])와 마

  4. C 언어 포인터 산술 연산 완벽 가이드 – 선언, 초기화부터 실전 예제까지

    포인터(pointer)는 다른 변수의 메모리 주소를 저장하는 특수한 변수입니다. C 언어에서 포인터는 메모리를 직접 다룰 수 있게 해주는 강력한 도구로, 배열·문자열 처리나 함수 간 데이터 전달 등에 폭넓게 활용됩니다. 포인터의 선언, 초기화 및 접근 먼저 다음 문장을 살펴보겠습니다. int qty = 179; 포인터 선언하기 int *p; p는 다른 정수형(int) 변수의 주소를 저장하는 포인터 변수입니다. 포인터 초기화하기 포인터 변수는 주소 연산자(&)를 사용해 초기화합니다. 주소 연산자는 해당 변수가 메모리에 위치한

  5. C 언어 포인터와 배열의 관계 쉽게 이해하기

    포인터와 배열C 언어에서 컴파일러는 배열의 모든 요소에게 연속된 메모리 공간을 할당합니다. 이때 베이스 주소(base address)란 배열의 첫 번째 요소가 저장된 메모리 위치를 의미합니다.예를 들어 다음과 같은 배열을 선언해 보겠습니다.int a[5] = {10, 20, 30, 40, 50};그러면 다섯 개의 요소는 아래 그림처럼 연속된 메모리에 순서대로 저장됩니다.포인터로 배열 가리키기만약 p가 정수형(int) 포인터로 선언되어 있다면, 배열 a는 다음 두 가지 방법 중 하나로 가리킬 수 있습니다.p = a; 또는 p = &a

  6. C 언어 기초: 포인터 배열과 이중 포인터(포인터에 대한 포인터) 개념 정리

    개요C 프로그래밍에서 포인터는 메모리 주소를 저장하는 강력한 도구입니다. 이 글에서는 포인터를 더욱 유연하게 활용할 수 있는 두 가지 개념, 즉 포인터 배열(Array of Pointers)과 이중 포인터(Pointer to Pointer)에 대해 자세히 알아보겠습니다.1. 포인터 배열(Array of Pointers)포인터 배열이란 이름 그대로 포인터들을 요소로 가지는 배열입니다. 일반 변수 배열과 마찬가지로, 여러 개의 주소 값을 하나의 배열로 묶어 관리할 수 있습니다.선언 방법데이터타입 *포인터이름[크기];예를 들어 다음과 같

  7. C 언어에서 함수 포인터를 선언하고 사용하는 방법

    C 언어에서는 포인터를 변수뿐만 아니라 함수에도 할당할 수 있습니다. 이를 함수 포인터(Pointer to Function)라고 하며, 코드의 유연성과 재사용성을 높이는 강력한 기능입니다.함수 포인터란?함수 포인터는 메모리상에 존재하는 함수 정의의 시작 주소(기준 주소)를 저장하는 포인터입니다. C 언어에서 배열 이름이 배열의 첫 번째 요소 주소를 나타내듯이, 함수 이름 자체가 해당 함수의 시작 주소를 의미합니다.선언 방법함수 포인터는 다음과 같은 형식으로 선언합니다.데이터타입 (*포인터이름) ();함수 이름 자체가 곧 함수의 기준

  8. C 언어에서 문자열 포인터 배열을 만드는 방법

    문자열 포인터 배열이란?C 언어에서 포인터 배열(array of pointers)은 각 요소가 문자열의 시작 주소(베이스 주소)를 가리키는 포인터로 구성된 배열을 의미합니다. 즉, 여러 개의 문자열을 2차원 문자 배열 대신 포인터를 이용해 효율적으로 관리할 수 있는 방법입니다.선언과 초기화는 다음과 같이 수행합니다.char *a[3] = {one, two, three}; // a[0]은 문자열 one의 시작 주소를 가리키는 포인터 // a[1]은 문자열 two의 시작 주소를 가리키는 포인터 // a[2]은 문자열 three의 시작

  9. C 언어 문자열 라이브러리 함수 총정리: 예제 코드로 배우는 string.h 활용법

    C 언어에서 문자열을 다루기 위한 다양한 문자열 라이브러리 함수들이 미리 정의되어 있으며, 이 함수들은 헤더 파일 string.h에 포함되어 있습니다. 이 글에서는 주요 문자열 함수들의 사용법과 실제 동작 예제를 통해 자세히 알아보겠습니다.C 언어의 주요 문자열 라이브러리 함수 목록strlen() – 문자열 길이 반환strcmp() – 두 문자열 비교strcpy() – 문자열 복사strncmp() – n개의 문자 비교strncpy() – n개의 문자 복사strrev() – 문자열 뒤집기strcat() – 문자열 연결strstr()

  10. C 언어에서 문자열을 숫자로, 숫자를 문자열로 변환하는 방법

    C 프로그래밍에서는 데이터 형식 간의 변환이 자주 필요합니다. 특히 문자열을 숫자로 변환하거나, 반대로 숫자를 문자열로 변환해야 하는 경우가 많은데요. 이 글에서는 C 언어에서 이러한 변환을 수행하는 표준 함수 두 가지를 예제 코드와 함께 자세히 알아보겠습니다.변환에 사용되는 두 가지 함수C 언어에서는 stdio.h 헤더 파일에 포함된 다음 두 함수를 사용하여 변환을 수행할 수 있습니다.sscanf() — 문자열을 숫자로 변환sprintf() — 숫자를 문자열로 변환두 함수의 이름이 비슷해서 헷갈리기 쉬운데, 핵심은 방향입니다. s

  11. 문자열 변환 함수 없이 C 언어로 대문자를 소문자로 변환하는 프로그램

    C 언어에서 문자열 변환 함수를 사용하지 않고 대문자를 소문자로 변환하는 방법을 알아보기 전에, 먼저 strlwr() 함수를 활용해 대문자를 소문자로 바꾸는 프로그램을 살펴보겠습니다. 기본 동작 원리를 먼저 이해하면, 이후에 직접 변환 로직을 구현하는 과정이 훨씬 명확해집니다. 예제 1: strlwr() 함수를 사용한 변환 #include <stdio.h> #include <string.h> int main() { char string[50]; printf(enter a string to con

  12. 라이브러리 함수 없이 문자열을 뒤집는 C 프로그램 작성 방법

    C 프로그래밍에서 문자열을 역순으로 뒤집는 작업은 자주 만나게 되는 기본 문제입니다. 이 글에서는 라이브러리 함수 strrev()를 사용하는 방법과, 라이브러리 함수에 의존하지 않고 직접 알고리즘을 구현하는 방법 두 가지를 예제와 함께 살펴보겠습니다. strrev() 함수를 사용한 방법 strrev() 함수는 문자열을 역순으로 뒤집는 데 사용됩니다. 뒤집힌 결과는 원본 문자열이 담긴 동일한 배열에 그대로 저장됩니다. 참고로 strrev()는 표준 C 라이브러리가 아니며, Turbo C 등 일부 컴파일러에서만 제공되는 비표준 함수

  13. C 언어 typedef 키워드 완벽 정리: 기본 사용법부터 구조체 정의까지

    typedef란 무엇인가?C 언어에서는 typedef 키워드를 사용하여 새로운 자료형 이름(data type name)을 정의할 수 있습니다. 다만 typedef로 완전히 새로운 자료형을 만드는 것은 아니며, 이미 존재하는 자료형에 새로운 별칭(다른 이름)을 부여하는 기능입니다.typedef를 활용하면 긴 자료형 선언을 간결하게 줄일 수 있고, 코드의 가독성과 유지보수성이 크게 향상됩니다.기본 문법typedef 자료형 새이름;간단한 예제typedef int bhanu; int a; bhanu a;위 선언문은 컴파일러에게 bhanu를

  14. C 언어에서 구조체의 개별 멤버를 함수 인수로 전달하는 방법

    C 언어에서는 구조체 전체가 아니라 필요한 개별 멤버만 골라 함수의 인수로 전달할 수 있습니다. 이 방식은 함수가 특정 데이터만 필요로 할 때 유용하며, 코드의 의도도 더 명확하게 드러납니다. 개별 멤버 전달 방식의 특징 함수 호출 시 각 멤버가 하나의 인수로 개별적으로 전달됩니다. 함수 헤더(매개변수 목록)에서는 이 값들이 일반 변수에 독립적으로 수신됩니다. 예제 코드 다음 예제는 학생 3명의 세 과목 점수를 입력받고, 구조체의 개별 멤버를 함수에 전달하여 총점을 계산해 출력합니다. #include <stdio.h>

  15. C 언어에서 구조체 주소를 함수 인수로 전달하는 방법

    C 언어에서는 구조체 변수 자체를 복사해 전달하는 대신, 구조체의 주소(포인터)를 함수의 인수로 넘기는 방식을 자주 사용합니다. 이 방식은 다음과 같이 동작합니다.호출하는 쪽에서 구조체의 주소를 함수의 인수로 전달합니다.함수 선언부(헤더)에서는 이 주소를 구조체 포인터로 받아 처리합니다.구조체 주소 전달 방식의 장점메모리 낭비가 없습니다. 값에 의한 호출(Call by Value)처럼 구조체 전체를 복사할 필요가 없어, 큰 구조체를 다룰 때 특히 효율적입니다.값을 다시 반환할 필요가 없습니다. 함수 내부에서 포인터를 통해 원본 구조

  16. C 언어에서 구조체 포인터에 접근하는 방법 완벽 정리

    구조체 포인터(pointer to structure)는 구조체 전체의 주소값을 저장하는 포인터입니다. 주로 연결 리스트(linked list), 트리(tree), 그래프(graph)와 같은 복잡한 자료 구조를 만들 때 활용됩니다.구조체 포인터를 사용하면 멤버에 접근할 때 일반적인 점(.) 연산자 대신 )라는 특수 연산자를 사용해야 합니다.선언 방법구조체 포인터는 다음과 같이 선언합니다.struct tagname *ptr;예를 들어 학생 구조체의 포인터는 아래처럼 선언할 수 있습니다.struct student *s;멤버 접근 방법)를

  17. C 언어 구조체 포인터 완벽 정리: 실전 예제로 배우는 선언과 화살표 연산자

    구조체 포인터란?구조체 포인터(pointer to structure)는 하나의 구조체 전체를 가리키는 메모리 주소를 저장하는 포인터입니다. 주로 연결 리스트(linked list), 트리(tree), 그래프(graph)처럼 노드 간 연결이 필요한 복잡한 자료구조를 구현할 때 핵심적으로 활용됩니다.일반 구조체 변수에서는 점(.) 연산자로 멤버에 접근하지만, 구조체 포인터에서는 화살표 연산자(->)라는 특수 연산자를 사용해야 합니다.선언 방법구조체 포인터는 다음 형식으로 선언합니다.struct tagname *ptr;예를 들어,

  18. C언어 구조체(struct)와 공용체(union)의 차이점 – 예제 코드로 쉽게 이해하기

    C언어에서 구조체(structure)와 공용체(union)는 서로 다른 자료형의 데이터를 하나의 이름으로 묶어 관리할 수 있게 해주는 사용자 정의 자료형입니다. 두 개념은 선언 문법이 매우 비슷해 혼동하기 쉽지만, 메모리 할당 방식과 사용 목적에서 본질적인 차이가 있습니다. 아래 표에서 항목별로 자세히 비교해 보겠습니다.구조체와 공용체의 차이점 비교표번호구조체 (Structure)공용체 (Union)1정의서로 다른 자료형의 데이터들을 하나의 이름으로 그룹화한 이질적(heterogeneous) 데이터 집합입니다.정의서로 다른 자료형의

  19. C언어 구조체와 공용체(Union)의 개념 및 활용 예제 총정리

    C언어에서 공용체(union)는 여러 멤버가 같은 메모리 공간을 공유하는 자료형입니다. 구조체(structure)가 공용체 내부에 중첩되어 있는 형태를 구조체의 공용체(union of structures)라고 부르며, 반대로 구조체 안에 공용체를 선언하는 것도 가능합니다.구조체와 공용체의 관계구조체는 각 멤버가 서로 다른 독립적인 메모리를 사용하지만, 공용체는 모든 멤버가 하나의 메모리 공간을 함께 사용합니다. 따라서 구조체를 공용체의 멤버로 포함시키면, 해당 구조체 전체가 공용체의 메모리 영역을 차지하게 됩니다.예제 1: 구조체를

  20. C 언어 고급 I/O 함수 완벽 정리: fprintf부터 fwrite까지

    I/O란 C 언어에서 데이터를 읽고 쓰는 입력·출력(Input/Output) 작업을 처리하는 함수를 의미합니다. C 언어의 파일 입출력은 처리 방식에 따라 고수준(High level) I/O와 저수준(Low level) I/O로 나눌 수 있습니다. 고수준 I/O와 저수준 I/O의 차이 고수준 I/O (High Level I/O) 사람이 이해하고 사용하기 쉬운 형태로 제공됩니다. 가장 큰 장점은 이식성(portability)이 높아 다양한 시스템에서 동일하게 동작한다는 점입니다. 저수준 I/O (Low Level I/O) 컴퓨

Total 1443 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:59/73  20-컴퓨터/Page Goto:1 53 54 55 56 57 58 59 60 61 62 63 64 65