Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- StringBuffer
- 1레벨
- 1lv
- Linux
- toLowerCase
- 참조형
- 프로그래머스
- Math.min
- string
- programmers
- 자바
- 프로시저
- PARSEINT
- 디비
- 코테
- 코딩테스트
- 오라클
- 문자열
- 1단계
- oracle
- SQL
- 배열
- 짝수
- 1level
- Integer
- Java
- substring
- 데이터베이스
- Math.max
- 알고리즘
Archives
- Today
- Total
웹 프로그래밍
포인터의 정의 본문
▶ 포인터?
- 선언된 모든 변수는 특정한 메모리 위치에 저장되는데 그 위치를 나타내는 메모리 주소를 의미한다.
- 포인터는 자료형에 상관없이 메모리 주소 한 개의 크기인 2byte(Java에서는 4바이트)로 저장된다.
▶ 포인터 선언
- 포인터 변수를 선언할 때 변수명 앞에 *(참조 연산자)와 변수의 주소값 &(주소 연산자)을 명시한다.
예) int x; int *ptr = &x; => ptr이라는 이름을 가진 포인터에 x의 주소값을 선언
- 주소 연산자 : 변수의 주소를 확인할 때 사용.
※ 주소 연산자는 사용할 변수와 포인터는 같은 자료형으로 선언되어야 한다.
예) float x; float *ptr; (o) int x; char *ptr = &x (x)
- 참조 연산자 : 선언된 포인터에 참조 연산자를 사용하면 저장된 주소 또는 주소에 있는 값에 접근할 수 있다.
예) ptr = &x, *ptr = x
※ 정리
변수 앞에 &를 붙여 선언하면 포인터,
포인터에 *를 붙여 선언하면 포인터가 가리키는 데이터,
▶ 포인터 연산 예제
int i = 1; // 변수 i가 10000번지 메모리에 저장되었을 때
int j = 2; // 변수 j가 20000번지 메모리에 저장되었을 때
int *ptr;
printf("i의 메모리 주소 = %u", &i); // output : i의 메모리 주소 = 10000
printf("j의 메모리 주소 = %u", &j); // output : j의 메모리 주소 = 20000
ptr = &i; // 변수 ptr이 30000번지 메모리에 저장되었을 때
printf("ptr의 메모리 주소 = %u", &ptr); // output : 30000
printf("ptr의 값 = %u", ptr); // output : 10000
printf("*ptr의 값 = %d", *ptr); // output : 1
ptr = &j;
printf("ptr의 메모리 주소 = %u", &ptr); // output : 30000
printf("ptr의 값 = %u", ptr); // output : 20000
printf("*ptr의 값 = %d", *ptr); // output : 2
'자료구조' 카테고리의 다른 글
추상 자료형과 알고리즘 정의 (0) | 2022.10.07 |
---|---|
자료구조의 정의와 컴퓨터에서의 자료표현 (0) | 2022.10.06 |