• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

손으로 입력하기에는 버거운 상수 배열을 정의하는 방법이 있을까요?

21.08.07 14:40 작성 조회수 78

0

공부를 하다보니까 python의 딕셔너리 같은 기능을 구현 하려고 시도했습니다.

상수 배열 2개를 정의 하려고 하는데 1개는 배열의 원소들이 규칙이 있어서 루프문을 통해 정의하려고 시도했지만.. 상수 배열의 원소는 변경이 안되서 잘 안되더라구요.

그래서 임시로 배열을 만들어서 루프문을 통해 배열을 만들고 나서 상수배열을 정의할때 임시배열의 이름을 가지고 할당하려고 했습니다.

그러나 이것도 컴파일자체가 안되더라구요..  어떤 방법이 있을까요?

만들려고 시도했던 프로그램은 콘솔창에 스트링을 입력하면 그 스트링을 모스부호로 바꿔서 콘솔창에 출력해주는 것이였습니다.

답변 1

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.08.07

안녕하세요

상수는 선언과 동시에 정의, 즉 초기화가 이루어져야 하기 때문에 상수 배열을 선언 이후 for문을 통해 원소들에 값을 할당하려는 행위는 불가능합니다.

반복문으로 초기화시키고 싶다면 불가피하게 상수라는 성질을 버리고 그냥 일반 배열 쓰셔야할 것 같습니다.

상수 배열로 선언하고 싶으신 이유가 한번 할당한 후 그 누구도 값 변경이 불가능하도록 하기 위해서라면 ..

C언어는 잘 모르겠지만.. 객체지향언어인 C++ 에서라면 일반 배열을 클래스의 private 멤버로 설정하여 외부에서 접근하지 못하도록 막는 방법을 사용할 수 있을 것 같아요! 할당도 접근 함수로 이루어지게끔 하구요. 

변남혁님의 프로필

변남혁

질문자

2021.08.08

답변 감사드립니다!