전체 글141 C# 얕은 복사와 깊은 복사의 차이 C#에서 객체를 복사하는 방식은 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)로 나뉜다얕은 복사는 원본 객체의 참조만 복사하여 같은 객체를 공유하며, 깊은 복사는 원본 객체의 모든 데이터를 새로운 메모리에 복사하여 독립적인 객체를 생성한다 결론얕은 복사는 객체의 참조만 복사하여 원본과 복사본이 같은 데이터를 공유하므로, 한쪽을 변경하면 다른 쪽도 영향을 받는다반면, 깊은 복사는 완전히 새로운 객체를 생성하여 복사본을 독립적으로 유지하므로, 변경이 원본에 영향을 주지 않는다 Wikipedia - Object copying 2025. 3. 4. C# 값 타입과 참조 타입의 차이 C#의 값 타입과 참조 타입은 메모리에 데이터를 저장하는 방식과 저장된 데이터에 접근하는 방식이 다르다 메모리 저장 방식저장 방식의 차이로 인해 메모리 할당 속도, 기본 초기화 값 등의 차이가 발생한다 값 타입의 데이터는 일반적으로 스택 영역에 저장되고, 참조 타입의 필드로 사용될 경우 힙에 저장된다. 변수에 데이터가 그대로 저장된다using System;class Program{ static void Main() { int a = 10; // 값 타입 (스택에 저장됨) int b = a; // a의 값을 복사하여 b에 저장 (새로운 공간 할당) b = 20; // b만 변경, a에는 영향 없음 Console.WriteLine($.. 2025. 3. 4. C# 인터페이스와 추상클래스의 차이 C#에서 인터페이스와 추상 클래스의 차이는 다음과 같다 개념적 차이인터페이스인터페이스는 주로 이 객체는 어떤 동작을 할 수 있다 라는 동작(행동)의 집합을 정의한다 예를 들어 '저장할 수 있다', '로그를 남길 수 있다' 같은 식으로 해당 인터페이스를 상속받은 클래스가 갖춰야 할 기능의 틀만 제공하는 것이다using System;// 1. 인터페이스 정의public interface ILogger{ void Log(string message);}// 2. 인터페이스 구현 클래스public class FileLogger : ILogger{ public void Log(string message) { Console.WriteLine($"파일 로그 기록: {message}"); .. 2025. 3. 3. POCU 아카데미 COMP 2200 C 언매니지드 프로그래밍 7주차 학습 개요POCU 아카데미 C언매니지드 학습 7주차 내용을 회고하고 복습하는 글이다 가변 인자 함수의 구조와 동작 원리, 그리고 C 언어에서의 오류 처리 방식 전반에 대한 내용을 학습하였다 무엇을 배웠는지가변 인자 함수 개념 및 원리가변 인자 함수란 정해지지 않은 수의 매개변수를 허용하는 함수이며, 인자가 몇개 들어오는지 모를 때 사용한다 다음과 같은 형태로 사용한다 (, …); va_로 시작하는 매크로 함수들을 이용한 구현va_list, va_start, va_end, va_arg를 이용하여 가변 함수를 구현한다매크로설명va_list가변 인자 목록을 담는 자료형va_start가변 인자 목록을 초기화하고, 가변 인자 시작 주소를 찾아 설정va_arg가변 인자 목록에서 다음 인자를 가져오고, 포인터를 다음 위.. 2025. 3. 3. POCU 아카데미 COMP 2200 C 언매니지드 프로그래밍 6주차 학습 개요POCU 아카데미 C언매니지드 학습 6주차 내용을 회고하고 복습하는 글이다 이번 학습에서는 C 언어의 구조체, typedef, 함수 포인터, 배열 포인터 등의 개념에 대해 공부했다. 또한 공용체(union)를 통해 메모리 효율성을 높이는 방법과 바이트 정렬의 중요성에 대해서도 배웠다 무엇을 배웠는지구조체구조체란 여러 자료형을 가진 변수들을 하나의 패키지로 묶은 데이터의 집합이다 구조체의 장점비슷한 데이터를 모아 코드를 빠르게 이해할 수 있다매직 넘버를 방지하여 실수를 줄일 수 있다원자성을 보장하는 연산을 통해 실수를 방지할 수 있다구조체의 선언 및 사용구조체는 지역변수로 선언 시 초기화되지 않으므로 명시적으로 초기화해줘야 한다. 전역변수로 선언시 BSS 영역에 의해 초기화 되지만, 함수 내에서 지역.. 2025. 2. 25. POCU 아카데미 COMP 2200 C 언매니지드 프로그래밍 5주차 학습 개요POCU 아카데미 C언매니지드 학습 4주차 내용을 회고하고 복습하는 글이다 입력과 파일 처리, 스트림과 버퍼링, 커맨드 라인 인자 처리 등에 대해 학습하였다. 또, C에서 입력을 처리하는 다양한 방법과, 파일을 다루는 기초적인 원리를 이해할 수 있었다. 무엇을 배웠는지입력 처리C에서 입력을 받는 방법에는 여러 가지가 있으며, 사용 목적과 안전성을 고려하여 적절한 함수를 선택해야 한다 한 글자씩, 한 줄씩, 한 데이터씩, 한 블록씩 입력을 받을 수 있으며 각 방식에는 장단점과 주의해야 할 사항이 있다 한 글자씩 입력 받기 getchar()getchar()를 사용하면 한 글자씩 입력을 받을 수 있다. 입력이 성공하면 해당 문자의 int 값을 반환하고, 입력을 종료하려면 EOF를 쓰면 된다. 종료될 경우.. 2025. 2. 25. 이전 1 ··· 17 18 19 20 21 22 23 24 다음 반응형