컴퓨터 언어/C (7) 썸네일형 리스트형 비트 연산 배운 내용 정리 비트 단위로 논리 연산을 하거나 비트를 이동시킬 때 비트 연산자를 사용한다. 1. &: 모든 2진수에 and연산을 적용시킨다. 2. |: 모든 2진수에 or연산을 적용시킨다. 3. ^: 두 비트를 비교해서 같은자리의 각 수가 다르면 1을 반환하고, 같으면 0을 반환한다. 4. ~: 비트를 반전시킨다. 0은 1로, 1은 0으로 출력한다. 5. >>: 지정한 수 만큼 비트를 오른쪽으로 이동시킨다. 6. , 상수 만들기 배운내용 정리 변수는 변할 수 있는 수라면, 상수는 변하지 않는 수이다. const, 매크로, enum을 통해 상수를 설정할 수 있다. 1. const constant의 약자로, '변함없는' 이라는 뜻을 가지고 있다. 변수를 선언할 때 앞에 const를 붙여 상수로 만들 수 있다. int main() { const float PI = 3.14159; printf("π = %.2f\n", PI); } 이 코드에서 PI는 3.14159로 값이 고정되었기 때문에 PI를 출력하면 3.14159가 나온다. 2. 매크로 #define을 써서 정의한다. #include #deifne PRINT_HELLO printf("Hello, World!"); int main(){ PRINT_HELLO } PRINT_HELLO를.. Typedef와 구조체 배운내용 정리 typedef는 type define의 약자로, 기존에 있는 형을 정의하는 것이다. 구조체는 여러 자료형을 가진 변수들을 하나로 묶어 자료형으로 사용할 수 있도록 하는 것이다. Struct는 형식을 지정하고, typedef는 형을 정의하는 것이다. typedef int Int32; Int32 n = 20; printf("%d", n); Int32를 int형으로 정의하고 적용한 모습이다. 20이 출력된다. typedef int Pair[2]; Pair point = { 3,4 }; //int point[2] = {3, 4} printf("(%d, %d)\n", point[0], point[1]) 배열을 이용해서 간단한 코드를 짜보았다. Pair을 int형으로 정의하고 적용한 모습이다. typ.. 재귀함수 배운내용 정리 재귀함수란, 자기 자신의 정의 속 자신이 다시 포함되어 있는 함수를 말한다. 강의에서는 학교를 예로 들었다. 학교 (배울 학, 학교 (배울 학, 학교 ...) 교) 이런 식으로 자신의 뜻이 무한대로 포함이 되어있다. 재귀함수를 이용할 수 있는 예로 팩토리얼을 배웠다. int factorial(int n) { if (n == 1) return 1; return n * factorial(n - 1); } int main() { printf("%d\n", factorial(10)); } n을 매개변수로 해서 n!을 리턴하는 코드를 짜보았다. factorial 함수 안에 factorial 함수를 써서 재귀함수를 만들었다. void printArr(int (*arr)[3]) { for (int i .. 프로토타입 배운내용 정리 prototype은 원형, 시제품과 같은 뜻이며, 함수가 어떻게 생겼는지 미리 간단하게 적는 것을 뜻한다. 메인함수보다 먼저 사용자 함수를 정의하고, 나중에 이 함수를 재선언해 내용을 넣을 수 있다. 프로토타입을 사용하면 위쪽에 함수의 목록이 정리되어 한눈에 보기 좋고, 함수의 내용에서 다른 사용자 함수를 호출하는데 제약이 없어진다. #include //걷기 void walk(int); //돌기 void rotate(int); void drawSquare(); int main() { //걷기 void walk(int distance) { printf("%dcm를 걸었습니다.\n", distance); } //돌기 void rotate(int angle) { printf("%d도 회전했습니다.. 함수의 반환 배운내용 정리 C언어를 구성하는 함수에 대해서 정리해볼 수 있었다. int main() { printf("Hello, World!\n"); } 없어서는 안되는 메인 함수이다. 일단 메인함수의 구조를 살펴보면 소괄호와 중괄호가 있는 것을 알 수 있다. 메인 함수 이외에도 함수를 정의하고 싶을 때는 소괄호 후 중괄호를 치면 된다. 그리고 메인함수의 경우 끝까지 실행했는데도 리턴값이 없으면 자동으로 return 0를 실행한다. 메인함수에서는 return 0를 생략해도 자동으로 실행이 된다. void 함수에서는 return; 으로 끝내는 것이 C언어의 표준이라고도 한다. (안 붙여도 상관없지만) - 더 찾아본 결과 C++에서는 void 함수에서 return;을 생략하는 것이 표준이라는 말이 있다. C언어에서는 .. 배열과 포인터 배운 내용 정리 학교 수업에서 배운 포인터의 내용이 거의 이해되지 않아 관련 강의를 다시 들었다. 포인터: 변수의 주소를 저장하는 변수. Pointer의 알파벳을 따서 ptr으로 보통 표현한다. C언어에서 포인터와 연관되어 사용되는 연산자는 &과 *이다. &: 주소 연산자이고, 변수의 이름 앞에 사용해서 해당 변수의 주솟값을 반환한다. *: 참조 연산자이고, 포인터의 이름이나 주소 앞에 사용해서 포인터에 가리키는 주소에 저장된 값을 반환한다. 포인터를 선언할 때도 사용한다. int a = 10; int* ptr_a = &a; *를 이용해 포인터를 선언한 코드이다. ptr_a라는 포인터 자체에 a의 주소를 저장하겠다는 뜻이다. ptr_a에 1을 더하면 int는 4비트이기 때문에 4가 더해진 값이 나온다. .. 이전 1 다음