본문 바로가기
컴퓨터/C & C++

[C언어] 정수 포인터 사용방법

by HanJoohyun 2017. 11. 5.
반응형




안녕하세요 한주현입니다.


오늘은 C언어의 정수형 포인터에 대해 알아보겠습니다.



포인터 - pointer

C 언어에서 변수들은 값을 저장할 수 있고, 각각의 변수의 값은 RAM에서 OS(Operating System)가 지정한 위치에 저장됩니다.


포인터는 JAVA나 Python과 같은 언어에서는 사용할 수 없으며, 

C와 같은 저수준 언어에서 사용할 수 있습니다


이번 시간에는 정수형 포인터 참조에 대해서 알아보겠습니다.



1. 참조할 정수형 변수를 선언합니다.


1
2
// 변수 선언
int i;
cs



2. 정수형 변수의 주소값을 참조할 정수형 포인터 변수를 선언합니다.

다음 3가지 방법은 모두 둥일합니다.


1
2
3
4
// 포인터 선언
int* ptr1;  // 포인터 선언1
int *ptr2;  // 포인터 선언2
int * ptr3; // 포인터 선언3
cs



3. 포인터변수에 변수 주소값을 넣습니다.

변수앞에 &(앰퍼샌드)를 넣으면 주소값이 나옵니다.


1
2
// 포인터에 변수 주소값 대입
ptr2 = &i;  // 변수 i의 주소값을 포인터변수 ptr2에 대입
cs



4. 변수에 값을 넣어봅시다


아래 3가지 방법은 모두 동일한 결과를 나타냅니다.

1) 직접 넣기

2) 변수 i 의 주소값을 담고 있는 정수형 포인터 변수 ptr2에 넣기

3) 정수형 포인터 변수 ptr2의 배열[0] 번째에 넣기


1
2
3
4
// 변수에 값을 대입, 아래 3가지 방법은 모두 같은 방법
= 10;       // 직접 대입
*ptr2 = 10;   // i의 주소값이 담겨있는 포인터 변수 ptr2로 접근하여 대입
ptr2[0= 10// 배열의 첫 번째 요소에 접근하여 값 대입
cs



5. 결과 출력


1
2
3
printf("변수 i의 값: %d\n",i);
printf("변수 i의 주소값: %x\n",&i);
printf("포인터변수 ptr2의 값: %x\n",ptr2); 
cs



1
2
3
변수 i의 값: 10
변수 i의 주소값: 17410af4
포인터변수 ptr2의 값: 17410af4
cs






위의 예시를 하나의 코드에 담으면 아래와 같습니다.


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
#include <stdio.h>
 
void main(void){
 
  // 변수 선언
  int i;     // 변수 선언
 
  // 포인터 선언
  int* ptr1;  // 포인터 선언1
  int *ptr2;  // 포인터 선언2
  int * ptr3; // 포인터 선언3
  
  // 포인터에 변수 주소값 대입
  ptr2 = &i;  // 변수 i의 주소값을 포인터변수 ptr2에 대입
 
  // 변수에 값을 대입, 아래 3가지 방법은 모두 같은 방법
  i = 10;       // 직접 대입
  *ptr2 = 10;   // i의 주소값이 담겨있는 포인터 변수 ptr2로 접근하여 대입
  ptr2[0= 10// 배열의 첫 번째 요소에 접근하여 값 대입
 
  printf("변수 i의 값: %d\n",i);
  printf("변수 i의 주소값: %x\n",&i);
  printf("포인터변수 ptr2의 값: %x\n",ptr2); 
}
 
cs



오늘은 정수형 포인터 변수를 사용하여 참조 및 변수에 값 넣기에 대하여 알아봤습니다.


그럼 다음시간에 만나요~



반응형

댓글