반응형

전체 글 429

c++ 포인터 설명

int main(){ using namespace std; int array[5] = { 9, 7, 5, 3, 1 }; cout 여기서 알 수 있듯이 array는 포인터입니다. 이렇게 array 하나만 입력하면 주소가 나오며 이는 &array[0] 참조를 이용할 때도 같은 값이 나오는 것을 볼 수 있습니다. cout 이렇게 해주면 array[0]의 값인 9가 나옵니다. char name[] = "JackJack";cout 이 경우에는 J가 나옵니다. 정적 array 또한 포인터라는 것을 알 수 있습니다.

[c++]포인터와 참조 설명

int main(){ int value = 5; int& ref = value; cout 참조는 별명처럼 사용할 수 있습니다. value의 또다른 이름으로 간주하고 사용할 수 있는 것인데요. #include #include using namespace std;int main(){ int value = 5; int* ptr = nullptr; ptr = &value; int& ref = value; cout 포인터의 주소는 value의 주소와 똑같은 것을 볼 수 있습니다. 하지만 포인터 자체의 주소를 치면 다른 것을 볼 수 있는데요. 이것에서 포인트도 변수라는 사실을 알 수 있습니다.  int& ref;이렇게는 불가능합니다. 참조가 별명같은 느낌인데 원래 이름이 없다면 별명도 지을 수 없겠죠? 원래 이..

[따배시 6.12] 동적 할당 배열

int main(){ int length = 5; int array[length]; return 0;}배열은 고정이 되어 있어야 가능한데요.이런 식으로는 불가능합니다. int main(){ const int length = 5; int array[length]; return 0;}이런 식으로 const를 해주면 정상적으로 작동하게 됩니다. 이것을 동적 배열이 가능하도록 바꿔보겠습니다. delete[] array;긴 사이즈  (배열) 등의 new를 제거할 때는 []를 써줘야 합니다. #include #include using namespace std;int main(){ int length; cin >> length; int* array = new int[length]; array[0] = 1; array..

[따배시 6.11] 메모리 동적할당 new 와 delete, 메모리누수

정적 메모리 할당 / stack int array[1000000]; //stack이렇게 선언해주는 것, 우리가 일반적으로 쓰는 코드가 바로 정적메모리입니다. 이런 정적 메모리 할당은 stack에 들어가며 이것은 용량이 그렇게 크지는 않은데요. 동적 메모리 할당 / heap new int;new int는 os에 4바이트 만큼 가져오면서 그 주소를 가져오는 것입니다. 그렇기 때문에 포인터로 받아야 하는데요.int* ptr = new int;*ptr = 7;이런식으로 해줄 수 있는 겁니다. 배열 동적할당을 해주면 장점이 많이 생기기 때문에 이 동적 메모리 할당을 하는 것인데요. 이런식으로 os로부터 4바이트를 가져와서 할당을 해주는 것을 기억해주셔야 합니다. 할당하면서 초기화를 해줄 수 있는데요.int mai..

[따배시 8.4] 생성자 멤버 초기화 목록

public: Something() { m_i = 1; m_d = 3.14; m_c = 'a'; }이런 식으로 생성자를 만들어줄 수도 있지만 더 간편한 방법이 존재합니다. initialize list라고 말합니다. public: Something() : m_i(1), m_d(3.14), m_c('a') {}이런식으로 써도 똑같은 방식이며 실전에서는 이러한 방식을 주로 사용할 것입니다.  전체 코드#include using namespace std;class Something{private: int m_i; double m_d; char m_c;public: Something() : m_i(1), m_d(3.14), m_c('a') {} void print() { cout 이런 식으로 써줄 수 ..

[8.3] 생성자 c++

#include using namespace std;class Fraction{private: int m_numerator; int m_denominator;public: Fraction() { m_numerator = 0; m_denominator = 1; } void print() { cout 반환 name이 없고 class와 이름이 같은 것은 생성자입니다. 외부에서 호출하려고 쓰려는 것이 아닌 어떤 변수를 만들 때 해당 변수의 값을 지정하고 싶을 때 이런 식으로 해주는 것입니다.  생성자 안에서 numerator의 값을 바꾸면 편하게 바꿔줄 수 있는 것입니다.  #include using namespace std;class Fraction{private: int m_numerator; int ..

[C++] 백준 4150번 피보나치 수

문제  코드#include #include #include #include #include using namespace std;string sum(string x, string y){ int num; int carry = 0; string result; reverse(x.begin(), x.end()); reverse(y.begin(), y.end()); while (x.length() y.length()) { y += '0'; } for (int i = 0; i > n; string a; string b; string result; a = '0'; b = '1'; if (n == 0) { result = "0"; } if (n == 1) { result = "1"; } for (int i = ..

[C++] 캡슐화, 접근지정자, 접근 함수

#include #include #include using namespace std;class Date{private: int m_month; int m_day; int m_year;};int main(){ Date today; today.m_month = 8; today.m_day = 4; today.m_year = 2025; return 0;}이럴 경우 private 코드이기 때문에 today.m_month 이런 식으로 사용이 불가능하고 에러가 발생합니다. public으로 바꿀 경우 객체지향 프로그래밍에서 효율이 좋은 게 아닌데요. 그러면 어떻게 access function을 해주어야 할까요? 나를 통해라 라는 함수를 만들어주면 됩니다. public으로 함수를 만들어주면 그 public 함수는 pri..

[따배시 c++ 8.1] 객체지향 프로그래밍과 클래스

클래스를 모를 때#include #include #include using namespace std;void print(const string& name, const string& address, const int& age, const double& height, const double& weight){ cout name_vec; vector addr_vec; vector age_vec; vector height_vec; vector weight_vec; print(name_vec[0], addr_vec[0], age_vec[0], height_vec[0], weight_vec[0]); return 0;}이런 식으로 해주면 너무 복잡하고 번거롭습니다. 하나하나씩 다 넣어줘야 하기 때문입니다.  그렇다면..

C++ 백준 1075 나누기

문제`  풀이#include using namespace std;int main(){ int N, F; cin >> N >> F; N = (N / 100) * 100; for (int i = 0; i 먼저 풀이가 선뜻 떠오르진 않을 것입니다. 생각하는 과정이 조금 필요했던 문제라는 생각이 들어요. 브론즈 문제지만 조금은 시간이 필요했습니다. 해당 문제는 N의 마지막 두 자리 수를 더했을 때 F로 나누어 떨어지는 수를 찾는 문제인데요. 이것을 해결하기 위해선 N을 변형해주는 과정이 필요합니다. 마지막 두 자리 수를 00으로 만들어준 다음에 0부터 99까지 차례로 올라가면서 F로 나누어 떨어지는 값을 출력해주는 것을 목표로 합니다. 왜냐하면 최소값을 구해야 하기 때문에 for문을 통해 위쪽으로 올라가면서 처..

반응형