Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2878] Re:간단한 포인터 질문
포인터 [] 1166 읽음    2003-08-06 21:38
포인터 변수의 값은 메모리 상의 번지임.
번지는 양의 정수이므로 정수를 직접 대입할 수도 있음(다만 형변환을 해주어야 함).
예: int *ptr = (int *)1234;
ptr의 값은 1234이고 메모리 상의 번지를 의미함.
ptr이 가리키는 번지(1234번지)에 있는 내용을 읽거나 쓰려면 *ptr을 사용해야 함.
예: printf("%d",*ptr); *ptr = 456; 

만약 아래와 같이 하면 원하는 결과가 나오지 않을 것이고 문제가 발생할 수 있음.
{
int *ip; // 이 상태에서는 ip의 값은 쓰레기 값임.
*ip = 10; // 메모리 상의 어떤 번지에 10이 기록될른지?
}

포인터 변수에 값(번지)을 정수로 직접 대입해서 사용하는 것은 안전하지 않을 뿐만 아니라 거의 사용할 일이 없을 것임.
일반적으로 포인터 변수에 값을 대입할 때는 아래와 같이 다른 변수의 번지를 대입함.
예:
int i;
int *ptr = &i;

+ -

관련 글 리스트
2877 간단한 포인터 질문 포인터 1064 2003/08/06
2878     Re:간단한 포인터 질문 포인터 1166 2003/08/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.