C 언어 포인터 심층 분석

포인터 기초 메모리 이해 메모리는 데이터를 저장하는 장치입니다. 컴퓨터 시스템에는 두 가지 주요 유형의 메모리가 있습니다: 외부 저장 장치 외부 저장 장치는 장기간 데이터를 보관하며, 전원이 꺼져도 데이터가 유지됩니다(비휘발성). 일반적인 외부 저장 장치: 하드 디스크, USB 플래시 드라이브, 광 디스크 등 내부 메모리 내부 메모리(램)는 전원이 공급되는 동 ...

7월 10일 21:16에 게시됨

초기 데이터 구조 - 연결 리스트 OJ

1. 교차 연결 리스트 문제 링크: 교차 연결 리스트 먼저 코드를 살펴보겠습니다. /** * 단일 연결 리스트에 대한 정의입니다. * struct ListNode { * int val; * struct ListNode *next; * }; */ typedef struct ListNode ListNode; struct ListNode* findIntersectionNode(struct ListNode* listA, struct ListNode* ...

7월 10일 06:09에 게시됨

C++ 포인터 완전 가이드

목차- 포인터 개요 주소 연산자 (&) 역참조 연산자 (*) 포인터 선언 포인터와 배열 포인터 초기화 포인터 연산 포인터와 const 포인터와 문자열 리터럴 다중 포인터 void 포인터 유효하지 않은 포인터와 널 포인터 함수 포인터 포인터 개요 이전 장에서 변수는 메모리의 위치로 설명되었으며, 이는 식별자(이름)로 접근할 수 있습니다. 이를 통해 프로그램은 데이터 ...

7월 2일 20:07에 게시됨

C++에서의 포인터 이해

C++에서 포인터는 메모리 주소를 저장하는 변수로, 다른 변수나 객체에 간접적으로 접근하고 조작할 수 있습니다. 1. 포인터의 개념 포인터는 특정 데이터의 메모리 주소를 저장하는 변수입니다. 자신의 메모리 주소도 존재하지만, 저장된 값은 다른 변수의 주소입니다. 2. 포인터 선언 문법 타입 *변수명; // 예: int *ptr; double *p; - 별표(*)의 위치는 ...

6월 30일 04:31에 게시됨

C에서 포인터 배열과 배열 포인터의 차이와 활용

1. 포인터 배열(Pointer Array)포인터 배열은 모든 요소가 포인터로 구성된 배열을 의미합니다. 일반적인 선언 형태는 다음과 같습니다:데이터형 *배열명[크기];배열 전체의 바이트 크기는 요소 개수와 포인터 크기의 곱으로 결정됩니다. 32비트 환경에서 포인터는 4바이트이므로, 포인터 2개를 담는 배열의 sizeof는 8이 됩니다.포인터 배열의 대표적인 용도는 여러 개의 ...

6월 30일 03:18에 게시됨

C++에서의 배열과 포인터

C++ 책이나 튜토리얼 대부분은 배열과 포인터를 함께 다룹니다. 그 이유는 무엇이며, 둘 사이에는 어떤 연관성이 있을까요? C++에서 배열과 포인터는 밀접하게 연결되어 있으며, 주요 관계는 다음과 같습니다. 1. 배열 이름은 포인터다 대부분의 상황에서 배열 이름은 배열의 첫 번째 요소를 가리키는 포인터로 암시적으로 변환됩니다. 예를 들어, int arr[5];라는 배열 ...

6월 29일 18:28에 게시됨

C 언어 양방향 연결 리스트(Doubly Linked List) 구현 및 구조 분석

1. 기초 데이터 타입 및 상태 코드 정의 연산의 성공, 실패, 메모리 할당 오류 등의 상태를 명확하게 처리하기 위해 열거형(enum)을 활용한 상태 코드를 정의합니다. 또한, 노드에 저장될 데이터의 타입을 별도로 지정하여 추후 확장성을 높입니다. #ifndef COMMON_DEFS_H #define COMMON_DEFS_H #include <stdio.h> #include <stdlib.h> typedef enum { ...

6월 25일 19:04에 게시됨

C 언어: 배열 초기화와 포인터 선언의 심층 분석

C 언어에서 배열과 포인터는 프로그램의 근간을 이루는 중요한 개념이지만, 그 선언 방식과 의미는 미묘한 차이로 인해 많은 개발자에게 혼란을 야기합니다. 예를 들어, int intArray[3] = {11, 22, 33};와 같이 정수형 배열을 선언하고 초기화하는 방법은 매우 일반적입니다. 또한, int *ptr = intArray;와 같이 배열의 시작 주소를 가리키는 포인터를 정의하는 것도 가능 ...

6월 8일 22:50에 게시됨

Go 언어에서 변수와 상수 다루기

변수 선언의 기본 Go에서는 var 키워드를 사용해 변수를 선언할 수 있습니다. 이 방식은 변수 이름과 자료형을 명시하며, 초기값을 동시에 할당할 수도 있습니다. package main import "fmt" func main() { var name string = "kim" fmt.Println(name) } 여기서 name은 문자열 타입의 변수이며, 값으로 "kim"을 가지게 됩니다. Go는 정적 타입 언어 ...

6월 4일 17:09에 게시됨

포인터의 기초와 활용: 메모리 주소 조작의 핵심 원리

메모리 구조와 주소 체계 중앙처리장치(CPU)는 데이터를 처리할 때 메모리에서 정보를 읽어오며, 처리된 결과 역시 메모리에 다시 저장됩니다. 일반적으로 8GB, 16GB 등의 메모리를 갖춘 컴퓨터는 이 공간을 효율적으로 관리하기 위해 각각 1바이트 크기의 단위로 나누어 구성합니다. 컴퓨터 시스템의 기본 용어: 비트(bit): 2진수 0 또는 1 하나를 저장하는 최소 단위 바 ...

6월 1일 12:33에 게시됨