10.15 (18분27초) 강의의 마지막 부분 c const and c++ const 에 관한 질문입니다!
299
작성한 질문수 10
-------------------------------------1번째질문 --------------------------------
/*C const and C++ const*/
{
const int y;
const int* p2 = &y;
int* p1;
p1 = p2; //warning (error in cpp)
}
우선 이 코드는 const를 우회해서 회피하려는 시도라 이런 코드를 왠만하면 사용하지 말라고 하셨는데,
왜 안되는지 궁금합니다.
제가 이해하기론 p1 의 주소값이 p2의 포인트주소 (y의 주소를 가르키는)로 대입되는거라 const에 구애
받지않고 변경이 가능하다고 생각이 들었습니다.
당연히 기존의 p1 = p2; 대신 p2 = p1; 이 들어간다면 (const int* p2 = &y;)의 const로 인해 p2의 주소가
변환이 되지 않아 error가 뜨겠지요.
하지만 p1은 const로 고정되어 있지 않은데 사용 가능한거 아닌가 하는 생각이 듭니다.
어떠한 이유에서 이런 코드 사용을 지양해야하는 건가요??
----------------------------------------2번째 질문-----------------------------------
기존 본문대로 실행 후 아웃풋 창을 봤을 때
1>F:\Cproject\C_study\C_study\8_ptr_Compatibility_12.c(75,10): warning C4090: '=': different 'const' qualifiers
이런식 으로 나오는데 ( int* p1; )를 const int* p1; 로 교체 해줄 시 warning이 사라집니다.
혹시 const를 앞에 붙이면 이 코드를 사용 가능해지는지요??
/*C const and C++ const*/
{
const int y;
const int* p2 = &y;
const int* p1;
p1 = p2; //warning (error in cpp)
}
const를 붙이는것 자체가 주소 수정이 불가해져야하는데 오히려 워닝이 사라지니 당황스럽네요
답변 1
0
1번째 질문은 const 선언을 왜 하는지를 생각해보셨으면 좋겠습니다.
작성하신 코드에서는 p1을 통해 'const' int y의 값을 바꾸실 수가 있습니다.
2번째 질문은 다른 분 질문에도 달아드렸던 기억이 나는데
const int*
int const*
int *const
const int* const
를 비교해보세요.
관련 글입니다만 먼저 실험을 해보시고 읽어보시길 권장합니다.
https://www.geeksforgeeks.org/difference-between-const-int-const-int-const-and-int-const/
Export template 안됨
1
26
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
56
3
main 함수에서 왜 int만 선언이 되는걸까요
1
57
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
55
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
49
1
프로토타입과 함수간의 인자 불일치
1
73
2
12.12 헤더 관련 질문
1
60
2
Visual Studio Community 2026 사용 문의
1
138
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
61
2
getchar(), putchar()
1
94
3
강의자리ㅛ
1
80
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
114
2
소스파일안에 여러 파일
1
76
2
F5와 F7의 차이
1
78
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
70
1
Step over 기능 문의
1
53
2
2.6 강의 따옴표 출력 규칙 문의
1
76
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
61
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
65
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
54
2





