티스토리 뷰
1. 다중 포인터
2. 다차원 배열
다중 포인터
[Type] **[포인터이름] = [주소값];
void SetMessage(const char* a)
{
a = "Bye"; // 새롭게 .rdata에 저장된 것을 새롭게 가리키게 됨
cout << a << endl;
}
void SetMessageDoublePointer(const char** a)
{
*a = "Bye";// string에 가리키던 주소(.rdata :Hello주소) 를 바꿈 (.rdata : Bye 주소로)
}
int main()
{
const char* string = "Hello";
SetMessage(string);
SetMessageDoublePointer(&string);
return 0;
}
- SetMessage(const char * a)
순서 | 포인터 | stack 영역 | 값 |
1 | string | .rdata#1영역 | Hello |
2 | ~ SetMessasge() ~ | ||
3 | |||
4 | main()영역 | ||
5 | string | .rdata#1영역 | Hello |
- 3번 순서에서, Bye라는 값이 새롭게 stack영역에 저장됨 (해당 값을 a 가 가리키게 됨)
- 따라서, string 포인터의 변화는 존재하지 않게 됨
- SetMessageDoublePointer(const char ** a)
순서 | 포인터 | stack영역 | 값 |
1 | string | .rdata#1영역 | Hello |
2 | ~SetMessageDoublePointer()~ | ||
3 | |||
4 | main()영역 | ||
5 | string | .rdata#2영역 | Bye |
다차원 배열
[Type] [배열이름] [행][열] = {[값]};
- 값 초기화 방법
- int arr [2][4] = { {1,2,3,4} , {5,6,7,8} };
- int arr[2][4] = {1,2,3,4,5,6,7,8};
- 2차원 배열은 평면상의 행열을 채우는 것과 유사하다 (ex 아파트 동/호수)
- 포인터로 배열 표현
- 배열 : int (?) [4] , 여기서 개당 int 크기의 4개의 값 공간을 가지고 있다는 것을 의미 (== 배열)
- (?) : 배열이름 혹은 포인터 사용
- 배열이름 사용시, 1차원 배열 ( int arr[4] )
- 포인터 사용시, 2차원 배열 ( int *arr[4] == int arr [?][4])
- 한 행에 4개의 값의 공간크기를 가진 배열을 가리키는 *arr 생성
int arr[2][4] = { {1,2,3,4} , {5,6,7,8} };
int(*pp)[4] = arr; //[ pp 주소는 arr 주소 ]int(**ptr)[4] = (int **)arr;// arr은 주소값(==&arr)이기에, 다중 포인터를 할시에 값을 타고 가게 된다 .
//( (int**)arr == 0x0f ) -> 0x0f: 0001 (*ptr) -> 0x0001 : ? 오류 (**ptr)
'프로그래밍 언어 > C++' 카테고리의 다른 글
객체 지향 프로그래밍 (+ 상속성, 은닉성) (0) | 2024.07.02 |
---|---|
객체 지향 (+ 생성자, 소멸자) (0) | 2024.07.02 |
배열 기초 (0) | 2024.07.01 |
참조(&) 기초 (0) | 2024.07.01 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 예외처리
- 우선순위 큐
- SQL
- bean
- Java
- 클래스
- DFS
- 백준
- JSON
- 이진탐색
- BFS
- 정렬
- 기술면접
- 버블정렬
- 알고리즘
- db
- 깊이우선탐색
- 티스토리챌린지
- 오블완
- 타입변환
- 게시판
- 포트폴리오
- Spring
- HTML5
- 코딩테스트
- 게시판 프로젝트
- JDBC
- Thymeleaf
- 검증
- stack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함