본문 바로가기

반응형

C언어

(19)
C언어와 C++의 차이점 (절차지향과 객체지향) 안녕하세요. 취업한 공대누나입니다. MFC를 공부하던 중 C++에 대한 개념이 너무 취약하다는 것을 깨닫고 C++에 대한 공부를 하고 MFC를 다시 공부해자라는 생각이 들었습니다. C++는 C언어의 발전된 형태라고 할 수 있기 때문에 두 언어는 비슷한 면이 굉장히 많습니다. 1. C언어는 절차지향(Procedural) C++는 객체지향(Multi Paradigm) 대부분의 책, 혹은 사람들이 가장 먼저 말하는 차이점은 이것이 아닐까 싶습니다. 그렇다면 절차지향과 객체지향의 개념에 대해서 알아보고 넘어가보겠습니다. 절차지향 C언어는 절차지향 언어입니다. 즉 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만듭니다. 객체지향 언어보다 더 빨리 처리되어 시간적으로 유리한 측면이 있습니다. 그리..
[C언어 독학하기] 18. 구조체란? struct, typedef 안녕하세요. 취업한 공대누나입니다. 오늘은 구조체에 대해 공부해보도록 하겠습니다. 1. 구조체란? (의미와 선언 방법) 구조체는 사용자가 정의해서 사용하는 사용자 정의 자료형입니다. 하나 이상의 변수들을 그룹화하여 새로운 자료형을 만드는 것입니다. 구조체를 정의한다는 것은 구조체를 만든다는 의미와 같습니다. 어떻게 구조체를 만드는지 보도록 하겠습니다. struct라는 키워드가 바로 구조체의 시작을 알리는 부분입니다. computer라는 이름의 구조체를 정의하고 있습니다. 그리고 중괄호 안에 변수를 선언해줍니다. 구조체에 의해 정리된 요소를 우리는 멤버라고 부릅니다. 다 선언을 한 뒤에 세미콜론을 꼭 해줘야 하는 것 잊지 마세요. 일반적으로는 위와 같이 main 함수 바깥에 선언하지만 이것은 어떻게 사용하..
[C언어 독학하기] 17. 값에 의한 호출, 주소에 의한 호출 안녕하세요. 취업한 공대누나입니다. 오늘은 함수의 호출 방식중 값에 의한 호출과 주소에 의한 호출에 대해 공부해보도록 하겠습니다. 1. 값에 의한 호출 (call by value) 이전 '함수'편에서 공부했던 방식은 값에 의한 호출입니다. 2020/11/03 - [전자 공학/C언어] - [C언어 독학하기] 13. 함수 [C언어 독학하기] 13. 함수 안녕하세요. 취업한 공대누나입니다. 오늘은 함수에 대해 공부해보도록 하겠습니다. 저는 처음에 함수에 대한 개념을 잘 이해하지 못했었는데요. 이제는 나름? 자유자재로 사용할 수 있게 되었 gdnn.tistory.com 값에 의한 호출 방식은 변수의 값을 복사해서 함수를 호출하는 방식을 말합니다. 예시를 들어보겠습니다. 위와 같은 소스 코드에서 변수 a의 값을 ..
[C언어 독학하기] 16. 포인터란?(2) (NULL 포인터) 안녕하세요. 취업한 공대누나입니다. 이번 시간에는 지난 시간에 이어 포인터에 대해 이어서 공부해보도록 하겠습니다. 포인터란 주소를 값으로 가지는 변수라고 설명을 했습니다. 포인터를 사용할 때에는 반드시 포인터가 가리키는 그 주소에 데이터가 존재하고 있어야 합니다. 즉, 초기화를 시키고 사용해야 한다는 뜻인데요. 다른 변수를 사용할 때도 마찬가지로 포인터 또한 초기화를 시켜줘야 합니다. 1. NULL 포인터 포인터를 초기화 할 때에는 NULL을 이용해서 합니다. NULL 포인터는 어떤 자료형의 포인터에도 저장할 수 있습니다. NULL이 들어있는 포인터를 우리는 널 포인터라고 말합니다. 그리고 아무것도 가리키고 있지 않은 상태를 뜻합니다. 2. 배열과 포인터 크기가 5인 int형 배열을 선언하고 각 값에 1..
[C언어 독학하기] 15. 포인터란(1) 안녕하세요. 취업한 공대누나입니다. 오늘은 C언어의 꽃이라고 불리는 포인터에 대해 배워보도록 하겠습니다. 가장 중요한 개념이면서 많은 사람들이 포기를 하는 챕터이기도 합니다. 저역시도 그랬고 다시 천천히 공부하는 중이니 포기하지 마세요 시작하겠습니다. 1. 어드레스 포인터에 대해 알기 위해서는 어드레스의 개념에 대해 먼저 이해하고 있어야 합니다. 어드레스는 말 그대로 주소입니다. 우리가 값을 넣은 변수가 어디에 있는지를 말하게 됩니다. %p는 변수의 주소를 헥사값(16진수)로 표현할 때 사용하는 것입니다. a의 어드레스를 다음과 같이 알 수 있습니다. 변수명의 앞에 &를 붙이면 그 변수의 어드레스를 나타냅니다. 이러한 어드레스(메모리 주소)는 고정된 것이 아니기 때문에 실행할 때마다 달라지게 됩니다. 메..
[C언어 독학하기] 14. 다차원 배열, 초기화 안녕하세요. 취업한 공대누나입니다. 오늘은 다차원 배열의 개념에 대해 공부해보도록 하겠습니다. 지난 번에 공부했던 배열은 복수의 동일한 자료형의 변수를 하나로 묶은 것이었습니다. 다차원 배열은 2차원 배열 이상을 의미합니다. 1. 2차원 배열과 3차원 배열 그림과 같이 int a[3][2];와 같이 선언했다고 생각해보겠습니다. 그러면 다음과 같이 int 형 공간이 6개 생기는 것입니다. 각각 원하는 것을 대입하면 됩니다. 그렇다면 3차원 배열은 어떻게 생기게 될까요? int a[2][2][2][2];와 같이 선언했다고 생각해봅시다. 그렇게 되면 a[0][0][0], a[0][0][1], a[0][1][0], a[0][1][1], a[0][2][0], a[0][2][1] 이렇게 총 6개의 공간이 생기는 것..
[C언어 독학하기] 13. 함수 안녕하세요. 취업한 공대누나입니다. 오늘은 함수에 대해 공부해보도록 하겠습니다. 저는 처음에 함수에 대한 개념을 잘 이해하지 못했었는데요. 이제는 나름? 자유자재로 사용할 수 있게 되었습니다. 함수는 사실 같은 일을 반복하기 싫을 때, 계속 같은 코드를 쓰기 싫을 때 아주 유용하게 사용할 수 있습니다. 예시로 덧셈을 하는 함수를 만들어서 설명을 해보도록 하겠습니다. 우선 이 함수의 출력 형태는 int형입니다. (결과 값이 정수형이게 됩니다.) 이름은 add 두 정수(a,b)를 입력받아서 그 두수를 더하여 return해주게 됩니다. 중괄호 안에 함수가 수행해야 할 내용을 적어주면 됩니다. 이렇게 한 것을 우리는 함수를 정의했다고 말합니다. 함수를 정의한 뒤 어떻게 사용할까요? 정의해놓은 함수를 사용할 때에..
[C언어 독학하기] 12. switch~case문 안녕하세요. 취업한 공대누나입니다. 오늘은 조건문 중의 하나인 switch case문에 대해 공부해보도록 하겠습니다. swtich case문 같은 경우에는 if문과 같이 조건에 따라 어떤 것을 실행할지 결정하게 됩니다. 간단하게 문법 형태를 보고 가도록 하겠습니다. 위와 같이 작성해주면 되는데요. 변수 값에 따라서 실행하는 case문이 달라집니다. 한 번 예제를 보도록 하겠습니다. 우선 입력받을 변수 a를 선언해주었습니다. scanf_s를 통해 a라는 변수에 입력을 진행했습니다. switch(a)라는 것은 a값이 조건이 된다는 것을 의미하고 a의 값에 따라서 해당 case문을 실행하게 됩니다. 입력받은 변수에 따라서 그 값이 1일 경우 1번을 선택하셧습니다.가 출력되게 코드를 구성해놨습니다. 2번일 경우..

반응형