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에 게시됨