반응형
안녕하세요 한주현입니다.
오늘은 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가지 방법은 모두 같은 방법 i = 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 |
오늘은 정수형 포인터 변수를 사용하여 참조 및 변수에 값 넣기에 대하여 알아봤습니다.
그럼 다음시간에 만나요~
반응형
'컴퓨터 > C & C++' 카테고리의 다른 글
[C언어] incompatible.c:2:3: warning: incompatible implicit declaration of built-in function 해결 방법 (0) | 2017.11.06 |
---|---|
[C언어] 현재 날짜, 시간 출력 - time.h C 표준 라이브러리 (2) | 2017.11.05 |
[C언어] 002. C 언어 기본 문법 syntax (0) | 2017.10.17 |
[C언어] 001. Hello world 출력 (0) | 2017.10.16 |
비주얼 스튜디오 단축키 모음 (0) | 2015.01.15 |
댓글