[완료]const 변수값 변경 관련해서 질문드립니다

Pike의 이미지

int main()
{
const int test = 0;
int* p_test = (int*)&test;

*p_test += 1;

printf("%d\n", test);
printf("%d\n", *p_test);

return 0;
}

해당코드를 실행하면 컴파일 에러가 뜨는게 아니라 0,1이 출력됩니다.
혹시나 싶어서 포인터의 값과 정수변수의 주소값을 확인해보니 일치하였습니다.
어떻게 이런게 가능한 것인가요?

peecky의 이미지

0 말고 다른 값으로 하면 어떻게 되나요?

익명 사용자의 이미지

확장자가 *.c 이냐 *.cpp(*.cc) 이냐에 따라 다른 결과가 나옵니다.

유사한 질문을 올린 사람도 있고 어셈블리 레벨에서 답변해 주신분도 있네요. 아래 링크 참조하시면 도움이 될 것 같습니다.

http://www.daniweb.com/software-development/cpp/threads/53814

Pike의 이미지

많은 도움이 되었습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.