Code/C++

[C++] 포인터

이성훈 Ethan 2024. 3. 27. 18:42

정말 오랜만에 포인터를 보니... 잘 기억이 나지 않아 다시 정리함

 

옛날에도 헷갈렸는데 여전히 헷갈리...ㅁ

 

#include <iostream>

using namespace std;

int main(){

    int a = 6;
    int* b; //포인터 b 정의

    b = &a; // a의 주소값을 포인터 b 에 넣어줌

    cout << "a의 값 " << a << endl; // 6으로 나옴
    cout << "*b의 값 " << *b << endl; // 해당 주소값에 있는 값이므로 6

    cout << "a의 주소 " << &a << endl; // 0x16d9fef98
    cout << "*b의 주소 " << b << endl; // 0x16d9fef98

    *b = *b + 1;

    cout << "이제 a의 값은 " << a << endl; // 7
    
    
    int* c = new int; //원하는 데이터형(int)을 알려주면 그에 맞는 메모리 블럭 주소를 찾아 리턴
    
    *c = a;
    
    cout << "c의 값 " << *c << endl; // 7
    cout << "c의 주소 " << c << endl; // 0x154e05ea0
    
    return 0;
}

 

 

포인터 변수는 일반적으로 64bit 프로그램에선 8byte, 32bit 프로그램에선 4byte

 

데이터 형식과 관계 없음

 

b = &a

*b = a

'Code > C++' 카테고리의 다른 글

[C++] 정적 변수 (static) 와 상수 변수 (const)  (0) 2024.08.18
[C++] 메모리 할당  (0) 2024.08.16
[C++] 네임스페이스 (namespace)  (0) 2024.08.15
[C++] 선언 (Declaration)과 정의 (Definition)  (0) 2024.08.14
[C++] 구조체  (0) 2024.03.26