-1
이 두 코드의 차이점은 무엇입니까? 두 코드 간의 차이점 : 상수 정수에 대한 상수 포인터 초기화
2.
const int ic = 2;
const int* const p3 = ⁣
1
const int ic = 2;
const int* const p3;
p3 = ⁣
1.
는 컴파일되지 않습니다. 2가 컴파일됩니다. 나에게 정수 정수의 메모리 주소를 상수 정수를 가리키는 상수 포인터에 할당하는 것과 똑같이 보입니다. 그것은 C++에서 초기화 또는 컨벤션과 관련이 있다고 생각합니다.편집 : error: assignment of read-only variable 'p3'
첫 번째 왜 그것이 초기화되지 않았을 때 읽기 전용인지 나는 알 수 없다. const 규칙에 따라 초기화 된 값은 변경할 수 없지만이 값은 초기화되지 않습니다.
unitally되었을 때 p3이 임의의 위치를 가리키고 있다는 것을 의미합니까? –
@NimitPatel 아니, 그렇다고해서 그런 의미는 아닙니다. 컴파일러는 코드를 받아들이지 않습니다. 모든 const는 생성시 초기화되어야합니다 (컴파일러가 실행 파일의 다른 영역, 예를 들어 읽기 전용 영역에 값을 넣을 가능성이 큽니다). – vsoftco