티스토리 뷰

Language/C

[C언어] 포인터와 const

Mr.SIM 2013. 10. 1. 21:21
포인터에 붙는 Const의 위치에 따라 모두 다른 의미를 가지게 된다.
  • Const int *변수명

데이터를 상수화하며, 포인터는 조작할 수 있다.

  • int * const 변수명

포인터를 상수화하며, 데이터는 조작할 수 있다.

  • const int * const 변수명

데이터와 포인터를 모두 상수화시켜서, 아무것도 변경할 수 없다.

  • int const *변수명

데이터를 상수화하며, 포인터는 조작 할 수 있다.



주석처리 된 부분은 모두 사용될 수 없다.

int  main(){
	int tmp = 100;

	const int *ptr1 = &tmp;
	int * const ptr2= &tmp;
	const int * const ptr3= &tmp;
	int const *ptr4 = &tmp;

//	++(*ptr1);
//	++ptr2;
//	++ptr3;
//	++(*ptr3);
//	++(*ptr4);
// const에 따른 에러 상황들...

	++ptr1;
	++(*ptr2);
	++ptr4;
		
	return 0;
} 


'Language > C' 카테고리의 다른 글

[C언어] 함수 포인터 배열  (0) 2013.10.02
[C언어] 함수 포인터  (0) 2013.10.02
[C언어] 문자열 포인터  (0) 2013.10.01
[C언어] scanf()와 fgets()의 차이  (0) 2013.10.01
[C언어] 배열이 0부터 시작하는 이유  (0) 2013.10.01
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday