참고 문서 |
---|
포인터 변수는 +, -, ++, -- 연산자를 이용하여 연산할 수 있으며, 이때의 연산은
포인터 변수의 자료형 크기에 맞추어 증감된다.
자료형에 따른 포인터 변수의 증감 변화 예
자료형 | 크기 | p-1 | p (기준점) | p+1 |
---|---|---|---|---|
char | 1 | 0x7f7e051f | 0x7f7e0520 | 0x7f7e0521 |
int | 4 | 0x7f7e0524 | 0x7f7e0528 | 0x7f7e052c |
float | 4 | 0x7f7e052c | 0x7f7e0530 | 0x7f7e0534 |
double | 8 | 0x7f7e0530 | 0x7f7e0538 | 0x7f7e0540 |
- char형 포인터 변수는 포인터 변수가 1 증가하면 1증가된 포인터 변수가 가리키는 실제주소번지는 1 증가한다.
- int형 포인터변수는 포인터 변수가 1증가하면 1증가된 포인터 변수가 가리키는 실제주소번지는 4 증가한다.
- float형 포인터변수는 포인터 변수가 1증가하면 1증가된 포인터 변수가 가리키는 실제주소번지는 4 증가한다.
- double형 포인터변수는 포인터 변수가 1증가하면 1증가된 포인터 변수가 가리키는 실제주소번지는 8 증가한다.
포인터 변수
#include <stdio.h> int main(void) { char ch = 'A', *cp; int num = 10, *ip; float fnum = 0.123, *fp; double dnum = 3.123456, *dp; cp = &ch; ip = # fp = &fnum; dp = &dnum; printf("ch = %c, num = %d, fnum = %f, dnum = %lf \n", ch, num, fnum, dnum ); printf("cp = %p, ip = %p, fp = %p, dp = %p \n", cp, ip, fp, dp); ch++; num++; fnum++; dnum++; cp++; ip++; fp++; dp++; printf("변수의 값과 포인터 변수를 1씩 증가 \n"); printf("ch = %c, num = %d, fnum = %f, dnum = %lf \n", ch, num, fnum, dnum ); printf("cp = %p, ip = %p, fp = %p, dp = %p \n", cp, ip, fp, dp); return 0; }
포인터 변수의 이해
#include <stdio.h> int main(void) { int num[3]={100,200,300}, *ip; printf("포인터의 증가 \n"); ip = num; /* num 배열의 선두주소를 포인터 변수 ip에 할당 */ printf("%d, %p \n", *ip, ip); *ip++; /* 포인터의 증가 */ printf("%d, %p \n", *ip, ip); printf("값의 증가 \n"); ip = num; /* num 배열의 선두주소를 포인터 변수 ip에 할당 */ printf("%d, %p \n", *ip, ip); (*ip)++; /* 값의 증가 */ printf("%d, %p \n", *ip, ip); return 0; }
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
43 | 구조체 포인터 | 2014.06.15 | 931 |
42 | 구조체의 선언과 데이터 입·출력 | 2014.06.15 | 3084 |
41 | 함수 포인터 | 2014.06.15 | 447 |
40 | 배열과 포인터 | 2014.06.15 | 406 |
» | 포인터 연산 | 2014.06.15 | 384 |
38 | 포인터 변수 | 2014.06.15 | 414 |
37 | 데이터 정렬 | 2014.06.15 | 424 |
36 | 배열 초기화 | 2014.06.14 | 630 |
35 | 2차원 배열 | 2014.06.14 | 670 |
34 | 문자열 처리 함수 | 2014.06.14 | 412 |
33 | 문자열 입출력 함수 | 2014.06.14 | 442 |
32 | 접근 수정자 | 2014.06.14 | 824 |
31 | 전역 변수 | 2014.06.14 | 308 |
30 | 지역 변수(local variable) | 2014.06.14 | 295 |
29 | 변수와 메모리 저장 위치 | 2014.06.14 | 428 |
28 | 비트 연산자 | 2014.06.14 | 288 |
27 | 관계 연산자와 논리 연산자 | 2014.06.14 | 472 |
26 | 증감 연산자 | 2014.06.14 | 319 |
25 | printf() 함수의 형식 지정자 | 2014.06.14 | 7522 |
24 | 열거 형 변수의 이해 | 2014.06.14 | 465 |