본문 바로가기

예제

(3)
C 언어 | 왜 배열을 선언할 때 상수 변수값을 크기로 지정할 수 없을까? 문제 상황 프로그램을 짜던 중 배열의 크기가 자주 사용될 것 같아 전역 변수로 상수 변수값인'const int NUMBER_IN_ARRAY = 5'를 선언했다. 그리고 main함수 내에서 배열을 선언할 때 그 크기 값을 NUMBER_IN_ARRAY로 지정했다. 컴파일을 하니 바로 컴파일 에러가 났다.(variable-sized object may not be initialized) 왜 배열을 선언할 때 상수 변수값을 크기로 지정할 수 없을까? 원인 파악 우선 배열의 선언 방법을 다시 알아봐야 한다. C/C++에서 배열은 선언할 때 크기가 지정되어야 한다. 이때 대괄호 []를 사용하는데, 크기는 고정된 상수여야 하며 변수는 사용할 수 없다. 내가 사용한 const int도 결국 초기값을 변경할 수 없는 변..
C 언어 | 문자열의 활용 ✔ 학습목표 문자열을 탐색하고 일부 문자를 수정하는 코드를 구현할 수 있다. 문자열의 길이 및 탐색 사용자로부터 문자열을 입력받아 한 글자씩 출력하는 프로그램을 만들어보자. 한 글자씩 출력해야 하기 때문에 출력에 있어서는 루프를 사용해야 할 것이다. 그렇다면 문자열의 끝은 어떻게 알 수 있을까? 한 가지 방법은 지난 강의에서 배운 대로 널 종단 문자(\0)를 이용하는 것이다. s라는 문자열이 있다고 할 때 for(int i = 0; s[i] != '\0'; i++){...} 과 같은 루프를 사용하는 것이 그 예이다. #include #include #include int main(void) { string s = get_string("Input: "); printf("Output:\n"); for (in..
C 언어 | 조건문과 루프 ✔ 학습목표 조건문과 루프를 c로 작성할 수 있다. 변수 설정 조건문과 루프에 관한 코드를 작성하기에 앞서, 앞서 배운 변수를 복습해보자. 지난 글에서 처럼 C는 오래된 언어기 때문에 저장하고자 하는 변수의 종류를 꼭 명시해주어야 한다. 만약 숫자를 세는 프로그램을 만들고 싶어 counter라는 변수를 설정한다면 int counter = 0; 처럼 말이다. 여기서 int는 저장하려는 데이터가 정수(integer)라는 것을 의미한다. counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것이다(할당 연산자 '=' 사용). 코드의 마지막에는 꼭 세미콜론(;)을 붙여주는 것도 중요하다. 그렇다면 숫자를 세는 기능은 어떻게 구현할까. C에서는 변수의 값을 1씩 증가시키는데 다양한 방법이 있다. 1..