본문 바로가기

분류 전체보기

(62)
[ProjectH4C] 코딩도장 Unit 36~38 Write-Up 배열 변수를 여러 개 사용해야 할 일이 생기면 하나씩 선언해주는 것이 여간 귀찮은 일이 아니다. 50명의 학생들의 평균 점수를 구하고자 한다면, 변수를 50개 선언해야 하는데 이는 너무 비효율적이다. 이러한 문제를 해결할 수 있는 것이 배열이다. 배열이란 같은 자료형의 변수들의 나열인데, 반복문과 함께 사용하면 변수가 몇 개가 있든 손쉽게 처리할 수 있는 특성을 가지고 있다. 배열을 선언하는 법은 다음과 같다. 자료형 이름[크기]; 자료형 이름[크기] = {값, 값, 값, 값, ...}; 위는 초기화 없이 선언할 때고, 아래는 선언과 동시에 초기화 해줄 때 사용된다. 만약 정수형 배열 arr를 10개만큼 생성했다고 가정하자. 생성은 int arr[10]과 같이 해야 하는데, 이렇게 하면 10개의 변수가 ..
[ProjectH4C] 코딩도장 Unit 34 ~ 35 Write-Up 포인터 어떠한 값을 저장하기 위해서는 값의 형태에 맞는 자료형의 변수를 선언해야 한다. 변수를 선언하면, 해당 변수는 컴퓨터의 메모리에 만들어진다. 자료형의 크기만큼 메모리에 공간을 할당한 후에, 그 곳에 값을 저장하는 식이다. 우리가 사는 집들 각각에 주소가 다른 것처럼 각각의 메모리 공간에는 서로 다른 주소가 존재한다. 우리는 변수에 접근하기 위해 변수의 이름을 지정하고 이름을 이용해 사용하지만, 메모리 상의 주소를 이용해서 직접적으로 접근할 수 있다. 접근 방법을 설명하기에 앞서, 주소에 관련된 연산자에 대해 알아야 한다. 주소 관련 연산자로는 &(주소 연산자)가 있다. 값과 값 사이에 존재하는 &는 비트 AND연산자이지만, 어떠한 변수 앞에 붙어있는 &는 해당 변수의 주소값을 출력하는 주소 연산자..
[ProjectH4C] 코딩도장 Unit 33 Write-Up FizzBuzz FizzBuzz는 프로그래밍 문제이다. 규칙은 다음과 같다. 1에서 100까지 출력 3의 배수는 Fizz 출력 5의 배수는 Buzz 출력 3과 5의 공배수는 FizzBuzz 출력 위의 규칙을 모두 적용시켜서 작성해보면 코드는 다음과 같다. #include int main() { for (int i = 1; i
[ProjectH4C] 코딩도장 Unit 32 Write-Up goto 명령문 반복문을 사용하지 않고 반복문의 동작을 수행하는 것이 가능하도록 해주는 명령문이 존재한다. 이럴때 사용하는 것이 goto이다. goto 명령문을 이용한 코드의 흐름은 다음과 같다. C언어를 배우게 되면, goto를 배우면서 가급적 사용하지 말라는 이야기를 듣게 되는데, goto를 적절히 사용하면 코드의 중복을 없앨 수 있다. 특히 에러처리에 굉장히 유용해서 리눅스 커널에서 자주 쓰이는 명령문이기도 하다. 사용 방법은 간단하다. 먼저, 넘어가고자 하는 지점에 레이블이란 것을 지정해주어야 한다. 각각의 레이블은 이름들을 가지는데, 이때 레이블 뒤에 콜론(:)을 써주어야 한다. 그리고 해당 레이블로 넘어가고자 한다면, goto 레이블; 을 작성해주면, 그 사이의 코드는 전부 무시하고 레이블로 ..
[ProjectH4C] 코딩도장 Unit 27~31 Write-Up 반복문 여태까지는 변수를 입력받고 입력받은 변수에 대해 한 번 처리하고 종료하는 코드를 작성하였는데, 코드를 작성하다 보면 같은 동작을 여러번 실행해야 하는 경우가 있다. 이러한 경우, 반복문을 이용해 원하는 만큼 반복 실행할 수 있다. 반복문의 종류에는 for, while, do ~ while이 있다. for 구문 for문의 기본 형태는 다음과 같다. for(초기식; 조건식; 변화식) { 반복할 내용 } 초기식을 통해 변수를 초기화 한 후, 조건식을 판별한다. 조건이 참이면 내용을 실행, 거짓이면 for문을 벗어나게 된다. for문의 동작 과정은 다음과 같다. 루프(Loop)라고 불리는 부분이 반복 수행되는 부분이다. 보통은 변수를 하나 선언해서 해당 변수를 카운트하면서 횟수를 지정해 주는데, Hell..
[ProjectH4C] 코딩도장 Unit 26 Write-Up Switch 조건에 따라 다른 동작을 해주는 문법으로 if문이 있다. if문의 기본 구조는 다음과 같다. if(조건 1){ 내용 1 } else if(조건 2){ 내용 2 } else{ 내용 3 } if문은 여러가지 경우에 따른 동작을 사용할 수 있지만, 각각의 조건식이 참이거나 거짓인 경우 두 가지만 처리할 수 있다. else if를 사용해 여러개의 조건을 작성해서 처리할 수 있지만, 각각의 조건식들을 모두 지정해주어야 하기 때문에 번거로운 감이 없잖아 있다. 이러한 경우, switch 문을 사용하여 다소 편하게 사용할 수 있다. switch의 기본 구조는 다음과 같다. switch(변수){ case 조건1: 내용1 break; case 조건2: 내용2 break; case 조건3: 내용3 break;..
[ProjectH4C] 코딩도장 Unit 23 ~ 25 Write-Up 비트 연산자 보통 자료형을 사용할 땐 바이트(Byte)의 단위로 사용한다. 이를 비트(bit)의 단위로 쪼개서 사용하기 위해 비트 연산자를 사용한다. 비트 연산자의 종류는 다음과 같다. 연산자 설명 & 비트 AND | 비트 OR ^ 비트 XOR(배타적 OR, Exclusive OR) ~ 비트 NOT 비트를 오른쪽으로 시프트 &= 비트 AND 연산 후 할당 |= 비트 OR 연산 후 할당 ^= 비트 XOR 연산 후 할당 = 비트를 오른쪽으로 시프트한 후 할당 비트 단위 연산자는 2진수에 관련한 연산이기 때문에 지금부터는 모든 변수의 값을 2진수로 표현한다. 문자형 변수 x, y에 각각 10, 20이 저장되어 있다고 한다. 문자형 변수를 사용하는 이유는 정수형 변수는 값이 너무 크기에 편의상 문자형 변수를 사..
[ProjectH4C] 코딩도장 Unit 20 ~ 22 Write-Up 비교 연산자 비교 연산자에는 단항 연산자, 이항 연산자, 삼항 연산자가 있다. 각각은 연산에 필요한 피연산자(값)의 갯수가 한개, 두개, 세개인 경우를 기준으로 구분한다. 단항 연산자의 예로는 증감연산자(++, --)가 있다. 이는 a++과 같이 하나의 피연산자를 필요로 한다. 이항 연산자의 예로는 +, -, *, /, %과 같은 수식을 계산하는 산술 연산자와 비교 연산자 등이 있다. 비교 연산자의 종류는 다음과 같다. 연산자 설명 == 같다. != 같지 않다. > 크다. = 크거나 같다. =10) ? 100 : 50; return 0; } 삼항 연산자는, if ~ else 구문을 한 줄로 표현해 놓은것과 같은데, 이를 if ~ else를 이용해서 표현하면 다음과 같다. #include int main(..