Programming (23) 썸네일형 리스트형 [ProjectH4C] 코딩도장 Unit 39~40 Write-Up 문자열 C언어에는 문자 자료형 char가 존재하지만 문자열을 저장하는 자료형은 존재하지 않는다. 그래서 사용하는 방법이 문자열을 배열에 저장한 후에 이를 한번에 입력받아서 각각의 인덱스에 저장하고, 출력할 때도 각각을 연속해서 출력해서 문자열인 것처럼 보이도록 하는 것이다. C언어에서는 포인터를 배열처럼 구현해서 사용할 수 있는데, 이러한 개념을 가지고 문자열을 다룰 수 있다. #include int main() { char c1 = 'a'; // 변수에 문자 'a' 저장 char *s1 = "Hello"; // 포인터에 문자열 "Hello"의 주소 저장 printf("%c\n", c1); // a: %c로 문자 출력 printf("%s\n", s1); // Hello: %s로 문자열 출력 return .. [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이 저장되어 있다고 한다. 문자형 변수를 사용하는 이유는 정수형 변수는 값이 너무 크기에 편의상 문자형 변수를 사.. 이전 1 2 3 다음