본문 바로가기

C++

(16)
(const MyClass& object) VS (MyClass& object) If you want to pass class instances (objects), you either use void function(const MyClass& object){ // do something with object } or void process(MyClass& object_to_be_changed){ // change member variables } On the other hand if you want to "pass" the class itself template void function_taking_class(){ // use static functions of AnyClass AnyClass::count_instances(); // or create an object of AnyC..
2차원 배열과 포인터배열(2차원 문자배열) 이번에는 여러 개의 문자열을 처리하기 위한 2차원의 문자배열을 살펴볼거에요. 하나의 문자열을 저장하기 위해서는 하나의 문자배열이 필요해요. 따라서 많은 문자열을 저장하기 위해서는 2차원의 문자배열을 사용해야 할 거에요. 각 행이 하나의 문자열을 저장한다 5개의 동물이름을 저장할 2차원의문자배열을 선언하고 문자열들을 저장해 봅시다. 5개의 문자열을 저장해야 하므로 행의 수는 다섯 개이며 열의 수는 가장 긴 문자열도 저장될 수 있도록 넉넉하게 선언하면 될 거에요. 물론 널문자까지 포함시켜야 하구요. char animal[5][20]; // 5개의 문자열을 저장할 2차원 문자배열 animal 문자배열을 선언하면 다음과 같이 100개의 char형 기억공간이 할당될 거에요. 여기서 각 행은 하나의 1차원 문자배열..
배열과 포인터(포인터로 배열 다루기 1.) 포인터 챕터를 마치고.... 배열과 포인터라는 챕터로 들어왔네요. 공부해본 결과..약간 개념적인 이해가 필요한 듯 하니 이해가 가지 않으면 여러번 다시 생각해봐야 할 거 같네요. 포인터로 배열 다루기 배열은 많은 양의 데이터를 효율적으로 처리할 수 있는 훌륭한 자료구조에요. 변수들이 메모리의 연속된 기억공간에 할당되어 있으므로 반복문을 사용할 수 있다는 것이 큰 장점이였죠? 그러나 덩치가 큰 만큼 쉽게 움직일 수 없다는 단점도 갖고 있어요. 예를 들어, 아래와 같이 초기화된 배열이 있다고 했을때, int ary[5] = [10,20,30,40,50]; 이 배열의 모든 값을 한번만 출력한다면 반복문을 사용하면되요. 하지만 프로그램 전체에 걸쳐 빈번하게 출력해야 한다면 함수를 만들어 호출하는게 좋겠죠? 배열..
[C언어] 포인터 장단점, 포인터와 배열의 차이 포인터란 자료가 저장되는 기억장치의 기억주소를 가리키는 지시자로써 포인터는 다른 기억장소의 자료를 참조하는데 사용되는 데이터입니다. 1. 포인터를 써야 하는 이유 어떠한 변수이든지 어떠한 버퍼를 할당 받아서 사용하는데, 모든 변수의 저장과 참조는 변수가 저장될 혹은 저장된 주소를 알아야 가능하다. 그래서 컴퓨터는 변수를 참조할 때 그 변수가 저장되어 있는 주소를 먼저 찾아내고 그 주소가 가리키는 내용을 참조하게 된다. 이렇게 변수의 주소를 저장하거나 사용하기 위한 변수가 포인터이다. 포인터를 사용하면 간결하고 효율적인 표현과 처리가 가능하고 더 빠른 기계어 코드를 생성할 수 있으며, 복잡한 자료 구조(배열, 구조체 등)와 함수의 쉬운 접근이 가능하다. 또한 포인터를 사용하지 않았을 때 코드로 표현할 수 ..
std::auto_ptr https://archive.ph/ReBCl https://en.cppreference.com/w/cpp/memory/auto_ptr std::auto_ptr - cppreference.com template class auto_ptr; (1) (deprecated in C++11) (removed in C++17) template class auto_ptr ; (2) (deprecated in C++11) (removed in C++17) auto_ptr is a smart pointer that manages an object obtained via new expression and deletes that object en.cppreference.com Defined in head..
C/C++ 자료형 C/C++ 에 존재하는 모든 자료형 개념 총 정리 Mar 04, 2018 알고리즘 문제 풀이 시에, 모르는 게 많이 생기게 됩니다. 특히 자료형에 대한 게 많이 헷갈리는 경우가 존재합니다. 어떤 문제는 long long 자료형을 써야할 때가 있고 (int 형의 범위를 초과해서), 어쩔때는 이러한 long long 을 scanf 나 printf 로 출력해야 할 때도 있겠죠 (저 같은 경우에는 int 나 float 같은 것 만 대충 알고 있었습니다). 이런 경우가 너무 많고 헷갈려서 여러 곳에서 정보를 모아서 정리를 해 보았습니다. 이상하게 모든 변수에 대해서 모아놓은 포스팅을 찾기가 매우 어렵더라구요. ▼ 정수 자료형의 크기 및 범위(LLP64/IL32P64, Windows) 자료형크기범위비고 char s..
Signed vs Unsigned themangs.tistory.com/entry/Signed%EC%99%80-Unsigned%EC%9D%98-%EC%B0%A8%EC%9D%B4 Signed와 Unsigned의 차이. 자바나, C나, C++이나, 자바스크립트나, 어디서든 내가 공부할때마다 종종 나오는게 signed, unsigned라는 키워드였다. 늘 글을 볼때마다 대충 이해하고 넘어갔는데 다른 공부하다가 또 나오면 막상 themangs.tistory.com
Good Explanation about Inline Function in C++ Inline function is one of the important feature of C++. So, let’s first understand why inline functions are used and what is the purpose of inline function? When the program executes the function call instruction the CPU stores the memory address of the instruction following the function call, copies the arguments of the function on the stack and finally transfers control to the specified functi..