'포인터'에 해당하는 글 1건

1. 포인터와 메모리

- 포인터 - 메모리의 특정위치를 가리킬 떄 사용

- 구성 - 정수형으로 된 메모리 주소가 저장


2. 포인터 선언방식

포인터는 *  를 사용하여 선언

이미 선언된 포인터에 * 를 사용하면 포인터에 저장된 메모리 주소(역참조)하여

값을 가져오거나 저장가능



자료형 *포인터이름;        //포인터 선언


*포인터;                        // 포인터를 역참조하여 값을 가져옴

*포인터 = 값;                 // 포인터를 역참조하여 값을 저장


변수의 메모리 주소를 구할 때 주소 연산자 & 를 사용


포인터 = &변수;      // 변수의 메모리 주소를 포인터에 저장



그림 1.  포인터* 와 & 연산자의 관계


예제)


1
2
3
4
 
int age = 20;
int *pointer = &age          // 포인터를 선언하고 변수의 메모리 주소로 저장
printf("%d\n"*pointer);    //20 
cs


 그림 2.  포인터와 포인터 역참조




3. 포인터와 주소의 자료형


int *a;             //pointer to int 라고 읽음

I * a               //  변수의 역참조, pointer to 제거하여 int 로 만듬

int b;              // &b 와 같이 변수의 주소를 구한 것 : address of int 라고 읽음



char *cPtr1;                // char형 포인터 선언
*cPtr1 = 'a';                // char의 크기 1바이트만큼 역참조하여 값을 저장
    
short *numPtr1;            // short형 포인터 선언
*numPtr1 = 100;          // short의 크기 2바이트만큼 역참조하여 값을 저장

int *numPtr2;              // int형 포인터 선언
*numPtr2 = 100;         // int의 크기 4바이트만큼 역참조하여 값을 저장

long long *numPtr3;    // long long형 포인터 선언
*numPtr3 = 100;        // long long의 크기 8바이트만큼 역참조하여 값을 저장


4. void 포인터 (범용 포인터)

자료형 크기가 정해지지 않았으므로 역참조 할 수 없음


5. 이중 포인터


자료형 **포인터이름;       // 이중 포인터 선언

**포인터;                     // 이중 포인터를 역참조하여 값을 가져옴
**포인터 = ;              // 이중 포인터를 역참조하여 값을 저장


int **a;     //pointer to pointer to int


6. 메모리 할당 하기

메모리를 바이트 단위로 할당 할 수 있다. 메모리를 할당 했으면 반드시 free 함수로 메모리 해제 필요


자료형 *포인터이름 = malloc(크기);         // 일정 크기만큼 동적 메모리 할당

free(포인터);                                        // 동적 메모리 해제


7. 메모리를 특정값으로 설정하기


memset(포인터, 설정할값, 크기);


8. 널포인터  (null pointer)

포인터가 아무것도 가리키지 않은 상태


자료형 *포인터이름 = NULL;        //포인터에 NULL 할당


저작자 표시
신고

'Study > C lang' 카테고리의 다른 글

코드 최적화 하기  (0) 2016.09.17
포인터와 메모리 핵심정리  (1) 2016.08.31
버블정렬 [Bubble Sort]  (2) 2016.08.09

WRITTEN BY
Profile
비타오백
Enjoy your stage!

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 잘 읽었습니다. :)
secret