C++ 포인터의 선언과 사용법, 메모리 할당 및 주의사항
·
C++
1. 포인터의 선언포인터는 변수의 메모리 주소를 저장하는 변수*을 사용하여 선언하며, nullptr로 초기화하는 것이 안전int* ptr = nullptr; // 안전한 초기화int value = 10;ptr = &value; // value의 주소를 ptr에 저장2. 주소로의 접근 (&연산자)변수의 주소를 얻을 때 &연산자를 사용주소 크기(포인터 크기)와 데이터 크기는 다를 수 있음int value = 42;int* ptr = &value;std::cout x86 환경에서 포인터 크기x86(32비트) 시스템에서는 포인터 크기가 항상 4바이트따라서, 예를 들어 0x123404 주소에 위치한 int* 포인터에 +1을 하면 0x123408 (int는 4바이트이므로 4 증가)3. 역참조 (*연산자)포인터가..
C++ 헤더 파일에 선언된 private 멤버 변수 접근
·
C++
외부(main.cpp)에서는 private 멤버 변수에 접근할 수 없지만, 같은 클래스 내에서는 접근 가능 헤더 파일 (MyClass.h)#pragma onceclass MyClass {private: int value; // private 멤버 변수public: MyClass(int v); // 생성자 선언 void PrintValue(); // 멤버 함수 선언}; 소스 파일 (MyClass.cpp)#include "MyClass.h"#include using namespace std;MyClass::MyClass(int v) { value = v; // ✅ private 멤버 변수에 접근 가능 (같은 클래스 내부이므로)}void MyClass::PrintValue() { ..
C++ 명세(헤더 파일)와 선언(소스 파일)의 분리
·
C++
1. 명세(헤더 파일)와 선언(소스 파일)의 분리C++에서는 코드의 재사용성과 유지보수를 위해 함수와 클래스의 선언을 헤더 파일(.h)에 작성하고, 구현(정의)은 소스 파일(.cpp)에 분리하여 작성 2. 헤더 파일(.h)에서 선언헤더 파일에서는 클래스, 함수의 선언을 정의 #pragma once // 헤더 가드 대체class MyClass {public: MyClass(); // 생성자 선언 void SayHello(); // 함수 선언};#pragma once와 헤더 가드#pragma once는 컴파일러가 해당 파일을 한 번만 포함하도록 보장하는 지시문#ifndef, #define, #endif와 같은 전통적인 헤더 가드보다 간결하고 실수 방지에 유리 3. 소스 파일(.cpp)에..
C++ 함수 정리
·
C++
1. 함수란?함수는 특정 작업을 수행하는 코드 블록코드의 재사용성 증가프로그램을 모듈화하여 가독성 향상유지보수 용이1) 기본 함수 선언 및 호출#include using namespace std;// 함수 선언void SayHello() { cout   2. 매개변수와 Pass by Value함수의 매개변수는 기본적으로 값에 의한 전달 (Pass by Value)이 이루어짐1) Pass by Value 예제void ModifyValue(int x) { x = 100; // 원본 값은 변경되지 않음}int main() { int num = 10; ModifyValue(num); cout num의 값이 ModifyValue() 함수 안에서 변경되어도, 원본 값은 유지따라서, ..
C++ 코딩 표준 (김포프님)
·
C++
C++ 코딩 표준 | 포프의 문서창고
C++ 배열, 명령문과 연산자, 제어문
·
C++
1. 배열배열은 같은 타입의 여러 변수를 하나의 그룹으로 저장할 수 있는 자료구조입니다.고정된 길이연속된 메모리 주소에 저장1) 배열 선언 및 초기화int numbers[5] = {1, 2, 3, 4, 5}; // 크기가 5인 정수 배열char letters[] = {'A', 'B', 'C'}; // 크기 생략 가능float scores[3] = {95.5, 88.0, 76.3}; // 실수형 배열배열 선언 시 요소개수가 변수를 사용할 경우, const가 필요합니다.const int size = 5; // 상수 선언int arr[size]; // 가능 (const 필요)하지만, 일반 변수는 사용할 수 없습니다.int size = 5;int arr[size]; // 오류! 배열 크기는 상수여야 ..