티스토리 뷰
c언어 포인터 변수, 역참조 연산자, 주소 연산자에 대한 정리
포인터 변수의 역참조 연산자(*)와 주소 연산자(&)에 대한 정리.
역참조 연산자 ( * )
포인터의 역참조 연산자 * 은 주소를 받아서 그 주소에 저장된 값을 가져오는 연산자이다. 즉 포인터 주소에 있는 데이터를 읽기 위해서 사용한다. 반대로 포인터 주소에 데이터를 쓸 때에도 사용된다.
int *address_of_data = &address;
int data = *address_of_data;
주소 연산자 ( & )
데이터를 받아서 이 데이터가 저장된 주소를 가져온다. 가령 포인터 변수 int x; 로 선언한 뒤 &x 는 x 포인터 변수의 주소를 가리킨다. 포인터 값이 아니다! &x라 쓴 것을 'x에 대한 포인터'라 부른다.
char array[] = "hello world"; 배열 array 변수는 문자열에 있는 첫번째 문자의 주소를 가리킨다. 실제로 포인터 변수이다.
포인터 배열이란
일련의 메모리 주소를 배열에 저장한 배열을 말한다. 즉 포인터를 저장한 배열이다.
char *array_pointers[] = {"name_01", "name_02", "name_03"}; <- 여기서 이름은 각 문자열 상수를 가리키는 포인터이다.
포인터 정리
변수의 주소는 메모리 어디에서 변수를 찾을 것인지 알려준다. 따라서 이런 변수의 주소를 포인터라 부르게 된다.
포인터가 메모리에 있는 변수를 가리키기 때문에 그렇다. 포인터 변수는 메모리 주소를 저장하는 변수이다. 그리고
포인터 변수를 정의 할 때에는 포인터가 가리키는 주소에 어떤 종류의 데이터가 저장되는지 알려주어야 한다.
'잉고래의 코딩' 카테고리의 다른 글
왜 포인터에 형(Type)을 지정했을까? (0) | 2013.12.15 |
---|---|
c프로그래밍 : sizeof()가 함수일까? 아닐까? (0) | 2013.12.15 |
c언어 extern 변수와 static 변수의 차이점 그리고 함수는? (2) | 2013.11.27 |
make menuconfig 혹은 Kconfig 에러 (0) | 2013.10.21 |
예전 코드 삭제해야 할까? 코멘트 처리 해서 남겨둬야 할까? (2) | 2013.10.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 소니 AXP35
- 서평
- SM5
- 박근혜
- 소니 캠코더
- X1 DASH
- Sony
- 소니
- 아이나비 Tab XD9
- 소니 핸디캠
- qxd1000a
- 팅크웨어
- 아이나비 탭 XD11 Pro
- 파빌리온 X2
- 독후감
- cc2530
- CSS
- HP Pavilion x2
- 블로그
- c언어
- AXP35
- 티스토리
- 아이나비 탭 xd9
- 독서
- 아이나비 태블릿
- 한빛미디어
- 아이나비 패드
- 블랙박스
- 캠코더
- 아이나비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함