[ C++ ] 포인터
포인터
1. 포인터
특정한 변수 자체가 존재하는 메모리 주소의 값
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(void) {
int a = 5;
//b가 a의 주소를 가지고 있다.
int *b = &a;
//b가 a의 주소를 가지고 있으니 a의 주소에 간접 참조하여 a값 5를 반환한다.
printf("%d", *b);
system("pause");
return 0;
}
>>5
기존 a를 이용해도 5 값을 찾을 수 있지만 포인터 변수인 b를 이용해서도 5 값을 찾을 수 있습니다.
2. 이중 포인터
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(void) {
int a = 5;
int *b = &a;
//*C 가 b 의 주소 값을 가지고 있다.
int **c = &b;
//*C 가 b 의 주소를 가지고 있으니까 b 의 주소 에 한번더 간접 참조하여 a 값인 5를 반환한다.
printf("%d", **c);
system("pause");
return 0;
}
>>5
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
int main(void) {
int a = 5;
int *b = &a;
int **c = &b;
printf("%d\n", &a);
printf("%d\n", b);
printf("%d\n", *c);
printf("%d\n", **c);
system("pause");
return 0;
}
>>
20183852
20183852
20183852
5
3. 배열과 포인터
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main(void) {
int a[] = { 1,2,3,4,5,6,7,8,9,10 };
int *b = a;
//b[ ] 라는 배열 자체가 포인터와 같아서 *b(즉, 값) 와 같다.=> b[2] 는 *(b+2) 과 같다
printf("%d\n", b[2]);
system("pause");
return 0;
}
>>3
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.