자기 자신은 값을 가질수는 없지만, 다른 변수나 메모리에 있는 값을 가리키는 변수
포인터는 자기 자신이 값이 없기 때문에 다른 변수의 주소나 메모리 주소값을 가지고 있다.
포인터는 메모리 주소를 가지고 있기 때문에 타입에 상관 없이 4Byte가 할당이 된다.
포인터 연산시 주의해야할 사항으로 포인터 증감 연산시 +1이 포인터가 가리키는 변수 타입 크기 만큼 증가 되가 된다.
포인터 선언법
-> 변수타입 *변수명;
ex1>
int k=10;
int *ptr;
ptr = &k;
//*ptr++;// 연산자 우선 순위에 의해 ptr에 저장된 주소값이 증가
(*ptr)++;// 11, 포인터가 가리키고 있는 값 증가
ex2>
int k[5] = {1,2,3,4,5};
int *ptr ;
//ptr = &k[0];
ptr = k;
int i;
for(i=0;i<5;i++, ptr++){
printf(“k[%d]=%d 주소값 : %d\n”,i,*ptr,ptr);
printf(“k[%d]=%d 주소값 : %d\n”,i,k[i],&k[i]);
}
'Code Archive > C언어' 카테고리의 다른 글
| Step10. Call by Value, Call by Reference (0) | 2014.09.06 |
|---|---|
| Step9. 데이터 캐스팅 (0) | 2014.09.06 |
| Step7. 배열 (0) | 2014.09.05 |
| Step6. 함수 (0) | 2014.09.05 |
| Step5. 반복문(for,while,do-while) (0) | 2014.09.05 |