티스토리 뷰
왜 포인터에 형(Type)을 지정했을까?
포인터를 사용하는 이유는 변수에 값을 쓰려는 함수는 변수 값이 아니라 변수의 주소가 필요해서이다. 그래야 함수를 벗어나서도 변경한 값이 유지되기 때문에 그렇다. 그러면 여러개의 변수들이 나열되어 있는 경우는 어떻게 할까? 각각의 변수 주소를 전부 보내줘야 할까? 각 변수 크기만큼 주소를 증가 시켜서 계산해주면 편리할 것이다. 이 때문에 나타난것이 포인터 연산이다.
포인터 연산
포인터 연산은 포인터 값을 증가 혹은 감소 같은 연산을 하는 것을 말하는데. 가령 포인터에 1을 더하면 다음 메모리 번지로 이동하는 것을 말한다. 그런데 변수의 경우 각각의 타입에 따라서 메모리 번지의 크기가 다르다 그래서 포인터의 형(type)을 지정해 줌으로써 메모리 번지를 얼마큼 증가시켜 주어야 하는지 컴파일러에게 알려주는 것이다. int 포인터에 1을 더하면 4만큼 증가될 것이다. 각 형에 대한 크기를 알아보려면 sizeof를 사용하면 된다. sizeof(int) 로 반환된 값이 해당 형(type)의 크기이다. 포인터 변수의 경우 가령 int *data; 은 sizeof(data)를 콜하였을 경우 아마도 4를 반환할 것이다. 포인터 변수의 크기가 반환되는 것이다.
'잉고래의 코딩' 카테고리의 다른 글
변수 혹은 함수 선언과 정의 차이점은 뭘까? (0) | 2013.12.15 |
---|---|
프로그래밍 메모리 구조 이해 (0) | 2013.12.15 |
c프로그래밍 : sizeof()가 함수일까? 아닐까? (0) | 2013.12.15 |
c언어 포인터 변수, 역참조 연산자, 주소 연산자에 대한 정리 (0) | 2013.12.15 |
c언어 extern 변수와 static 변수의 차이점 그리고 함수는? (2) | 2013.11.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HP Pavilion x2
- 아이나비 탭 XD11 Pro
- 아이나비
- 박근혜
- SM5
- qxd1000a
- 한빛미디어
- 아이나비 패드
- Sony
- AXP35
- 티스토리
- X1 DASH
- 소니 AXP35
- 소니 핸디캠
- 캠코더
- 아이나비 Tab XD9
- 소니 캠코더
- 팅크웨어
- 아이나비 탭 xd9
- 블로그
- c언어
- 독서
- CSS
- 블랙박스
- 소니
- 파빌리온 X2
- cc2530
- 아이나비 태블릿
- 독후감
- 서평
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함