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

C++빌더 Q&A
C++Builder Programming Q&A
[4391] [질문] const_cast<>에 관해...
남병철 [] 2993 읽음    2000-11-03 00:00
안녕하십니까? 남병철입니다.
아래를 보시면 const변수를 포인터로 받아서 변환시도 했습니다.
포인터 상에서는 변환되었는데 막상 const변수는 변환않되어 있습니다.
그럼 같은주소가 2개 이라는 건가요? 그게 가능합니까? --;
암튼 자신의 생각을 적어주세요.


// const 변수인 constvar의 포인터를 const_cast<int*>해서 변화 시키고
// 일반 포인터인 ptr로 받아 주소의 값을 수정했는데..
// 왜? 수정된 결과가 기존의 const 변수인 constvar에 적용 되지않을까요?
// 2변수의 주소는 분명 같은데..

#include <iostream.h>

void main()
{
    onst int constvar = 5;
    int* ptr;
    const int* ptr_c1 = &constvar;        // 포인터 변화 가능, 값 변화 불가

    ptr = const_cast<int*>(ptr_c1);        // const성질을 없애는 형변활이 맞나요?
   
    if(ptr == &constvar)
    {
    cout << (*ptr = 100) << endl;    // 같은 주소인데 값이 다르게 나타남.
    cout << constvar << endl;

    cout << *(ptr_c1+1) << endl;    // 포인터 값은 변화가능하나 데이터는 불변
    //cout << (*ptr_c1 = 1000) << endl;
    }
}

+ -

관련 글 리스트
4391 [질문] const_cast<>에 관해... 남병철 2993 2000/11/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.