C 프로그래밍 언어에서 참조에 의한 전달(pass by reference)은 함수를 호출할 때 변수의 값을 복사해서 넘기는 대신, 변수가 저장된 메모리 주소를 인수(argument)로 전달하는 방식입니다. 함수 내부에서 포인터를 통해 해당 주소에 접근하면 원본 변수의 값을 직접 읽고 수정할 수 있습니다. 참고로 엄밀히 말하면 C 언어는 항상 값에 의한 전달(call by value) 방식을 사용하지만, 포인터로 주소값을 넘김으로써 참조에 의한 전달과 동일한 효과를 얻을 수 있습니다. 동작 원리(알고리즘) 다음은 C 언어에서 참조에
C 언어 strlen 함수란? C 표준 라이브러리 함수 size_t strlen(const char *str)은 문자열 str의 길이를 계산합니다. 이때 문자열의 끝을 나타내는 널 종료 문자(\0)는 길이에 포함되지 않습니다. 여러 개의 문자(character)가 모여 이루어진 배열을 문자열(string)이라고 부릅니다. 문자열 선언 문자열 배열은 다음과 같은 형식으로 선언합니다. char stringname [size]; 예를 들어 char a[50];은 최대 50자 길이의 문자열을 저장할 수 있는 배열을 의미합니다. 문자열
C 표준 라이브러리 함수인 int strcoll(const char *str1, const char *str2)은 문자열 str1과 str2를 비교하는 함수입니다. 특징적인 점은 비교 결과가 현재 로케일(locale)의 LC_COLLATE 설정에 따라 달라진다는 것입니다.여러 개의 문자(character)가 모여 이루어진 배열을 문자열(string)이라고 부릅니다.문자열의 선언문자열 배열은 다음과 같은 형식으로 선언합니다.char stringname [size];예를 들어 char string[50];은 최대 50자를 저장할 수 있
C 표준 라이브러리 함수 size_t strspn(const char *str1, const char *str2)는 str1 문자열의 시작 부분부터 str2에 포함된 문자들로만 이루어진 구간의 길이를 계산하여 반환합니다.C 언어에서 문자(character)들의 배열을 문자열(string)이라고 부릅니다.문자열 선언 방법문자열 배열은 다음과 같이 선언합니다.char stringname [size];예를 들어 char string[50];은 최대 50자를 저장할 수 있는 문자열 배열입니다.문자열 초기화 방법1. 문자 상수를 이용한 초기
C 표준 라이브러리 함수인 char *strcpy(char *dest, const char *src)는 src(원본)가 가리키는 문자열을 dest(대상)로 복사하는 역할을 합니다. C 언어에서 문자(character)들이 모여 이루어진 배열을 문자열(string)이라고 부릅니다. 문자열의 선언 문자열 배열은 다음과 같은 형식으로 선언합니다. char stringname [size]; 예를 들어 char string[50];은 최대 50자를 저장할 수 있는 문자열을 의미합니다. 문자열의 초기화 단일 문자 상수를 이용하는 방법 &m
C 표준 라이브러리 함수인 char *strcat(char *dest, const char *src)는 src가 가리키는 문자열을 dest가 가리키는 문자열 끝에 이어 붙이는(연결하는) 역할을 합니다. C 언어에서는 문자들이 모여 이루어진 배열을 문자열(string)이라고 부릅니다. 문자열 선언 방법 문자열은 다음과 같은 형식으로 선언합니다. char stringname [size]; 예를 들어 char string[50];은 최대 50자를 저장할 수 있는 문자열을 의미합니다. 문자열 초기화 단일 문자 상수를 이용한 초기화:
C 표준 라이브러리 함수 char *strncat(char *dest, const char *src, size_t n)는 src가 가리키는 문자열을 dest가 가리키는 문자열의 끝에 최대 n개 문자까지만 이어 붙이는(연결하는) 함수입니다. C 언어에서 문자(character)들의 배열을 문자열(string)이라고 부릅니다. 문자열 선언 배열은 다음과 같이 선언합니다. char stringname[size]; 예를 들어 char string[50];은 길이 50자를 저장할 수 있는 문자열입니다. 문자열 초기화 단일 문자 상수를 이
C 표준 라이브러리의 int strcmp(const char *str1, const char *str2) 함수는 str1이 가리키는 문자열과 str2가 가리키는 문자열을 서로 비교하는 역할을 합니다.여기서 문자 배열을 흔히 문자열(string)이라고 부릅니다.문자열 선언 방법문자열은 다음과 같이 선언합니다.char stringname [size];예를 들어, char string[50];과 같이 선언하면 최대 50자 길이의 문자열을 저장할 수 있습니다.문자열 초기화문자열을 초기화하는 방법에는 두 가지가 있습니다.1. 개별 문자 상수
C 표준 라이브러리 함수 int strncmp(const char *str1, const char *str2, size_t n)는 두 문자열 str1과 str2의 처음 n바이트까지만 비교하는 함수입니다.C 언어에서 문자(character)들의 배열을 문자열(string)이라고 부릅니다.문자열 선언문자열 배열을 선언하는 기본 문법은 다음과 같습니다.char stringname [size];예를 들어 char string[50];처럼 선언하면 길이 50자를 저장할 수 있는 문자열이 만들어집니다.문자열 초기화문자열을 초기화하는 방법에는
C 표준 라이브러리 함수 char *strstr(const char *haystack, const char *needle)는 haystack(검색 대상 문자열) 안에서 needle(찾고자 하는 부분 문자열)이 처음 나타나는 위치를 찾는 함수입니다. 이때 문자열의 끝을 알리는 널 문자(\0)는 비교 대상에서 제외됩니다.프로그래밍에서 문자들이 순서대로 모인 배열을 문자열(string)이라고 부릅니다.문자열 선언문자열(문자 배열)을 선언하는 기본 문법은 다음과 같습니다.char stringname [size];예를 들어 char stri
문자(character)들이 모여 이루어진 배열을 문자열(string)이라고 합니다. C 언어에서 문자열은 널 문자(\0)로 끝난다는 특징이 있습니다. 선언 문자열 배열을 선언하는 문법은 다음과 같습니다. char stringname [size]; 예를 들어 char string[50];은 길이 50자를 저장할 수 있는 문자열을 선언하는 코드입니다. 초기화 문자열은 크게 두 가지 방법으로 초기화할 수 있습니다. 단일 문자 상수를 사용하는 방법 char string[10] = { H, e, l, l, o, \0 }; 문자열 상
구조체 배열이란?C 프로그래밍에서 구조체 배열(array of structure)은 서로 다른 데이터 타입의 변수들을 하나의 이름 아래 묶어 놓은 집합을 의미합니다. 예를 들어 학생 여러 명의 번호, 이름, 성적처럼 서로 다른 자료형으로 이루어진 데이터를 하나로 관리할 수 있어 실무에서 매우 유용하게 활용됩니다.구조체 선언의 일반적인 형태구조체는 다음과 같은 형식으로 선언합니다.struct tagname{ datatype member1; datatyp
C 프로그래밍에서 구조체 배열(array of structure)은 서로 다른 자료형의 변수들을 하나의 이름 아래 묶어 관리할 수 있게 해주는 강력한 기능입니다. 구조체 내부에 배열을 선언하면 여러 개의 연관된 데이터를 체계적으로 저장하고 처리할 수 있습니다.구조체 선언의 일반적인 형태구조체는 다음과 같은 형식으로 선언합니다.struct tagname{ datatype member1; datatype member2; datatype member n; };여기서 각 요소의 의미는 다음과 같습니다.struct :
구조체 포인터(pointer to structure)는 구조체 전체의 시작 주소를 저장하는 포인터입니다. C 언어에서 구조체 포인터는 연결 리스트(linked list), 트리(tree), 그래프(graph)처럼 노드 간 연결이 필요한 복잡한 자료 구조를 만들 때 필수적으로 활용됩니다.일반 구조체 변수는 점(.) 연산자로 멤버에 접근하지만, 포인터로 구조체에 접근할 때는 화살표 연산자(->)라 불리는 특수 연산자를 사용합니다. 참고로 (*ptr).member 형태로 역참조 후 점 연산자를 쓰는 것과 결과는 같지만, 화살표 연산
C 언어에서 구조체 포인터(pointer to structure)는 구조체 전체의 시작 주소를 저장하는 포인터입니다. 이를 활용하면 연결 리스트(linked list), 트리(tree), 그래프(graph)처럼 복잡한 자료구조를 효율적으로 구현할 수 있습니다.특히 구조체 포인터로 멤버에 접근할 때는 일반적인 점(.) 연산자 대신 화살표 연산자(->)라는 특수 연산자를 사용한다는 점이 핵심입니다.구조체 포인터 선언구조체 포인터는 다음 형식으로 선언합니다.struct tagname *ptr;예를 들어 학생(student) 구조체에
C 언어에서 구조체의 값을 한 함수에서 다른 함수로 전달하는 방법에는 크게 세 가지가 있습니다.개별 멤버를 함수의 인수(argument)로 전달구조체 전체를 함수의 인수로 전달구조체의 주소를 함수의 인수로 전달이 글에서는 그중 첫 번째 방법인 구조체의 개별 멤버를 함수의 인수로 전달하는 방법을 자세히 살펴보겠습니다.개별 멤버 전달의 기본 원리함수를 호출할 때 구조체의 각 멤버를 하나씩 인수로 넘겨줍니다.함수 쪽에서는 이 값들을 일반 변수(매개변수)로 독립적으로 받아 처리합니다.즉, 함수 입장에서는 구조체를 전달받는 것이 아니라 단순
구조체를 함수로 전달하는 세 가지 방법 C언어에서 구조체의 값을 한 함수에서 다른 함수로 전달하는 방법은 크게 세 가지가 있습니다. 개별 멤버를 함수의 인수로 전달하는 방법 구조체 전체를 함수의 인수로 전달하는 방법 구조체의 주소를 함수의 인수로 전달하는 방법 이번 글에서는 그중 구조체 전체를 함수의 인수로 전달하는 방법을 자세히 살펴보겠습니다. 구조체 전체 전달 방식의 특징 함수를 호출할 때 구조체 변수의 이름을 인수로 지정합니다. 함수의 매개변수 부분에서 이 값을 다른 구조체 변수로 받습니다. 단점으로는 구조체 전체의 복사
구조체 값을 전달하는 세 가지 방법C 언어에서 구조체의 값을 한 함수에서 다른 함수로 전달하는 방법은 크게 세 가지가 있습니다.개별 멤버를 함수의 인수로 전달하는 방법구조체 전체를 함수의 인수로 전달하는 방법구조체의 주소를 함수의 인수로 전달하는 방법이 글에서는 그중에서도 구조체의 주소를 인수로 전달하는 방법을 중심으로 자세히 살펴보겠습니다.구조체 주소 전달의 기본 원리호출하는 쪽에서는 구조체 변수의 주소(&)를 함수의 인수로 넘깁니다.함수 선언부에서는 이 주소를 구조체 포인터로 받아 처리합니다.이렇게 하면 함수 내부에서 화
구조체(Structure)는 서로 다른 자료형의 변수들을 하나의 이름으로 묶어 관리할 수 있게 해주는 사용자 정의 자료형입니다. 관련 있는 데이터를 하나의 단위로 그룹화하면 코드의 가독성과 유지보수성이 크게 향상됩니다. 구조체 선언의 일반적인 형식 구조체는 다음과 같은 형식으로 선언합니다. struct 태그이름{ 자료형 멤버1; 자료형 멤버2; 자료형 멤버n; }; 여기서 struct는 구조체를 정의할 때
C언어에서 공용체(union)는 서로 다른 데이터 타입을 가진 여러 변수가 하나의 메모리 공간을 공유하도록 하는 자료형입니다. 구조체(structure)가 모든 멤버에게 각각 독립적인 메모리를 할당하는 것과 달리, 공용체는 모든 멤버가 같은 메모리 위치를 함께 사용한다는 점이 핵심 차이입니다.공용체의 문법공용체를 선언하는 기본 문법은 다음과 같습니다.union 공용체태그{ 데이터타입 멤버1; 데이터타입 멤버2;