6일차 예비강의 메모
2015. 2. 23. 21:46ㆍ창고
728x90
728x90
1. 포인터의 차원이란?
참조할 수 있는 주소의 단계.
0차원 - int a;
1차원 - int* a : 0차원 포인터의 주소를 가리킴.
2차원 - int** a : 1차원 포인터의 주소를 가리킴.
2. 대입은 같은 차원에서만 가능하다.
같은 차원만 가능함. & 연산을 통해 타입을 승격할 수 있음.
예제)
int *a;
int *b;
int c = 10;
a = c;
b = &c;
a = c는 1차원에 0차원을 대입하는 문장이 되므로 참조할 수 없다.
b = &c는 &는 참조연산자를 이용해 int형 c를 int* 차원으로 승격하여 주소값을 대입해준다.
실제로 이런 문구의 워닝이 뜨며 a = c는 값을 제대로 참조할 수 없다.
주소를 참조하든 안의 값을 참조하던 차원이 같아야 정상적인 연산이 되는 것이다.
아래 코드를 실행 했을때, 정상 참조되지 않은 a는 값을 출력하지 못하고 런타임 에러가 난다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> #include <stdlib.h> void main() { int* a; int* b; int c = 10; a = c; b = &c; printf("b = %d\n", *b); printf("a = %d\n", *a); } | cs |
728x90
반응형
'창고' 카테고리의 다른 글
혼자 연구하는 C/C++ 1장 정리(프로그래밍 입문) (0) | 2015.02.26 |
---|---|
국기3기 정규수업 2일차 메모 (0) | 2015.02.26 |
국기3기 정규수업 1일차 메모 (0) | 2015.02.26 |
5일차 예비수업 메모 (0) | 2015.02.16 |
4일차 예비수업 메모 (0) | 2015.02.13 |
3일차 예비수업 메모 (0) | 2015.02.13 |
2일차 예비수업 메모 (0) | 2015.02.12 |