C++ 참조와 포인터의 동작 원리와 타입 추론 규칙

C++에서 메모리 레이아웃과 객체 수명을 정확히 제어하려면 값 범주(Value Category)의 기본 개념을 먼저 숙지하는 것이 필수적입니다. 본 글에서는 참조(Reference)와 포인터(Pointer)가 컴파일러 수준에서 어떻게 해석되며, `auto`를 통한 타입 추론 시 적용되는 규칙과 잠재적 함정을 기술적으로 정리합니다. 좌값 참조의 내부 매커니즘 C++ 표준은 참조의 물리적 구현 ...

8월 12일 11:46에 게시됨

C 언어 기초 핵심 개념 및 주요 문법 정리

main 함수 이해하기 C 언어 프로그램의 실행은 항상 main 함수에서 시작됩니다. 하나의 프로젝트 내에는 반드시 단 하나의 main 함수만 존재해야 합니다. int main() { // 실행 코드 return 0; } int: 함수의 반환 타입을 의미하며, 정수형 값을 반환합니다. return 0: 프로그램이 정상적으로 종료되었음을 운영체제에 알리는 관습적인 표현입니다. ...

7월 30일 08:41에 게시됨

C++ 레퍼런스의 동작 원리와 고급 활용법

레퍼런스의 기본 개념과 메모리 구조 레퍼런스(Reference)는 이미 존재하는 변수에 붙이는 별칭(Alias)입니다. 레퍼런스를 통해 수행하는 모든 연산은 원본 변수에 직접 적용되는 것과 완전히 동일한 효과를 가집니다. 메모리 관점에서 레퍼런스는 자체적인 저장 공간을 할당받지 않으며, 원본 변수와 동일한 메모리 주소를 공유합니다. 레퍼런스를 선언할 때는 타입 뒤에 ...

7월 13일 16:56에 게시됨

C 프로그래밍 실습 - 구조체와 포인터 활용

실습 개요 본 실습에서는 C语言的 구조체, 포인터, 연결 리스트 등 핵심 개념을 실습을 통해 학습한다. 각 과제별로 다양한 데이터 구조를 활용하는 방법을 익힌다. 과제 1: 학생 성적 관리 시스템 학생 정보를 구조체로 정의하고, 성적 계산 및 정렬 기능을 구현한다. #include #include #define MAX_STUDENTS 3 typedef struct { int student_id; char nam ...

7월 13일 04:24에 게시됨

C언어 포인터의 고급 활용과 사용자 정의 데이터 타입 정리

1. 다중 포인터 (Multi-level Pointers) 포인터 변수의 주소를 저장하는 포인터를 다중 포인터라고 합니다. 주소를 타고 여러 번 접근하는 구조를 가집니다. int data = 100; int *p1 = &data; // 1단계 포인터 int **p2 = &p1; // 2단계 포인터 (이중 포인터) int ***p3 = &p2; // 3단계 포인터 (삼중 포인터) 2. 안전한 포 ...

6월 22일 02:47에 게시됨

C++ 핵심 개념 정리: 포인터, STL 컨테이너 및 활용법

C++ 학습 시 자주 사용되는 핵심 개념들을 코드 예제와 함께 정리합니다. 기본 입출력 및 배열 초기화 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N = 110; int d[N]; // 전역 변수 int main() { int n; cin >> n; cout << n * 2 << endl; // memset을 사용한 ...

6월 9일 01:15에 게시됨

C 언어 포인터와 배열 활용 실습

1. 포인터를 이용한 배열 값 탐색 배열 내 최댓값과 최솟값을 찾는 과정에서 포인터를 활용하면 함수 호출 시 여러 값을 동시에 반환하는 효과를 낼 수 있습니다. #include <stdio.h> void calculate_range(int arr[], int size, int *min_ptr, int *max_ptr) { *min_ptr = *max_ptr = arr[0]; for (int i = 1; i < size; ++i) { if (arr[i] &lt ...

6월 6일 18:54에 게시됨