17. 포인터

2014. 4. 26. 18:34 - 루하스

포인터란?

다른 변수의 주소를 저장하는 변수

그 주소에 해당하는 변수의 값을 자유자재로 이용할 수 있다.

포인터 변수를 사용하려면 같은 타입의 변수로 만들어야 한다.


ex)))int형 변수 = int* 변수명

  char형 변수 = char* 변수명


#include <stdio.h>


int main()

{

int variable = 54;

int *pointerVariable = NULL;


pointerVariable = &variable;


printf("variable's value = %d\n", variable);

printf("variable's address = 0x%d\n", &variable);


printf("\n\n");


printf("pointerVariable's value = 0x%d\n", pointerVariable);

printf("pointerVariable's pointer value = %d\n", *pointerVariable);


return 0;

}




함수는 변수를 여러개 받을 수 있어도 변수는 항상 하나만 받을 수 있다.

그렇기 때문에 포인터 변수는 함수간에 유용하게 사용할 수 있다.

#include <stdio.h>


int exampleFunction(int returnVariable, int* pointer);


int main()

{

int returnVariable = 54;

int variable = 10;

int *pointer;


pointer = &variable;


printf("BEFORE\n");

printf("returnVariable = %d\n", returnVariable);

printf("variable = %d\n", variable);


returnVariable = exampleFunction(returnVariable, pointer);

printf("\n\n\n");


printf("AFTER\n");

printf("returnVariable = %d\n", returnVariable);

printf("variable = %d\n", variable);


return 0;

}


int exampleFunction(int returnVariable, int* pointer)

{

returnVariable = 100;

*pointer = 100;

return returnVariable;

}


#include <stdio.h>


void swap(int* a, int* b);


int main()

{

int value100 = 100;

int value200 = 200;

int* pointer_a = &value100;

int* pointer_b = &value200;


printf("BEFORE\n");


printf("value100 = %d\n", value100);

printf("value200 = %d\n", value200);


printf("\n\n");


swap(pointer_a, pointer_b);


printf("AFTER\n");


printf("value100 = %d\n", value100);

printf("value200 = %d\n", value200);


return 0;

}


void swap(int* a, int* b)

{

int temp;

temp = *a;

*a = *b;

*b = temp;

}



'프로그래밍 > C언어' 카테고리의 다른 글

C언어의 역사  (0) 2015.01.17
18. 구조체, 공용체, 열거형  (0) 2014.04.28
16. 배열  (0) 2014.04.21
15. 반복문 break, continue  (0) 2014.03.30
14. 반복문 for  (0) 2014.02.08

다른 카테고리의 글 목록

프로그래밍/C언어 카테고리의 포스트를 톺아봅니다