C++22 [C++] Reference(참조자), 데이터 동적 할당 new 개념 공부 1. Reference(참조자) C와 C++의 차이를 공부하다가 레퍼런스에 대하여 공부하게 되었다. 레퍼런스는 C에는 없던 개념으로, 포인터와 유사한 개념이다. 하지만 포인터가 메모리 상에 존재하여 공간을 차지하는 반면 레퍼런스는 보통의 경우 공간을 차지하지 않는다. 레퍼런스를 사용하는 이유는, 참조하는 타입의 크기와 상관없이 주소값만 전달하면 되기 때문이다. 개념을 공부하며 다른 사람에게 설명하기 쉬운 비유가 생각났다. 예를 들어, ppt로 포트폴리오를 만들어 메일로 첨부하는 것 (직접 타입 전달)과드라이브에 포트폴리오를 올려 URL을 첨부하는 것 (주소값 전달)의 차이와 비슷하다고 느꼈다. 실제로 Gmail을 보내게 되면 일정 이상의 크기는 직접 첨부가 아니라 구글 드라이브 링크를 통하여 전달하.. 2024. 8. 16. [C++] C에서 C++으로, 이것이 C++이다 취업 전까지 C++을 개념이라도 공부해 보자!라는 생각으로 일단 빠르게 서점을 가 입문서를 구매하였다. 여러 책을 둘러보다가 가 C를 배웠던 나에게 적합한 듯 보여 선택하게 되었다. 사실, C#을 배우면서 객체지향 언어라는 것을 강제로 주입한 느낌이 컸는데, 이 책의 1장에서 세탁소에 비유한 내용이 객체지향 언어를 확 와닿게 해 주었다. 점점 다양한 언어를 배워가며 느끼지만, 언어를 새롭게 배울 때 새롭게 배우는 언어를 기존의 언어의 개념을 가져와 정확하게 번역하려 하면 오히려 힘들다고 생각한다. 외국어를 배울 때도 각 언어만의 고유한 의미가 온전히 번역하기 어렵듯이, 컴퓨터 언어도 비슷하다고 느껴졌다. 1장 C와는 다른 C++ 1. 표준 헤더 파일들은 .h 확장명 생략 #include //C의 stdi.. 2023. 11. 21. [ BOJ/C++ ] 10699 오늘 날짜 https://www.acmicpc.net/problem/10699 10699번: 오늘 날짜 서울의 오늘 날짜를 출력하는 프로그램을 작성하시오. www.acmicpc.net 전에 풀어두고 제출 안 한 문제가 있어 올린다. #include #include int main() { std::time_t timer = time(NULL); //struct tm t; //localtime_s(&t, &timer); //t.tm_hour -= 3; //std::cout 2023. 8. 20. [ BOJ/C++] 10171 고양이, 10172 개 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net \ /\ ) ( ') ( / ) \(__)| 위와 같은 출력을 요구하는 문제이다. 하지만, 그대로 출력하려 하면 오류가 난다. 바로 \ 때문이다. https://learn.microsoft.com/ko-kr/cpp/c-language/escape-sequences?view=msvc-170 이스케이프 시퀀스 자세한 정보: 이스케이프 시퀀스 learn.microsoft.com 이러한 이스케이프 시퀀스 때문에 \ 뒤에 문자가 오지 않으면 에러로 인식한다. 이러한 경우에 \를 출력하려면 두 번 입력하면 된다. \\ 다음으로 중요한 포인트는 줄바꿈이다. 위와.. 2023. 7. 25. [BOJ/C++] 2557 Hello World, 10699 오늘 날짜 1. 2577 Hello World 가장 기본적인 문제이다. '성공'표시를 남기기 위해 제출하였다. 이 문제로 C++을 처음 접한다면 표준 라이브러리의 입출력 클래스 iostream 헤더파일 선언. std 네임스페이스의 출력함수 cout참조, 문자열 Hello World!출력 (문제 이름과는 달리 !가 있다. ) #include int main() { std::cout 자세한 정보: learn.microsoft.com 처음에 기본적인 년, 월, 일 출력이 어떻게 되는지 알아보기 위해 출력해보았다. +포인터라는 개념을 알아야한다. C언어를 배우며 가장 핵심이 되었던 내용이라고 생각한다. 당시에 교수님께서 다른 언어를 배우면 포인터라는 개념이 따로 존재하지 않는다고 하셨는데, C++에는 존재하였다. 내일은 .. 2023. 7. 14. [Unity, C++] 네임스페이스의 단점 Unity C# Using System; , C++ using namespace std;를 지양하는 이유, 범위지정연산자 어제 알아보기로 한 네임스페이스에 관하여 알아보았다. 사실 8개월정도 의문을 품고있었으면서도 이런 내용을 찾아보지 않고 공부하고있었다는점이 부끄럽고 반성하게되었다. 뭐라고 검색해야할지 몰라 using namespace std와 std::를 같이 검색하다 몇가지 글을 찾았다. 내용을 더 찾아보고싶다면 'using namespace/네임스페이스 단점'이라고 검색한다면 찾기 쉬울 것이다. -본론- Unity에서 using System; 대신 System.을 사용하는 이유, C++에서 using namespace std;대신 std::를 사용하는 이유는 무엇일까? using 의 장점 1. 전체적인 코드가 짧아짐 2. 가독성이 좋아짐 개발자의 편의성을 우선적으로 생각한다면 using을 사용하여 선언하겠지만, 개발.. 2023. 7. 13. 이전 1 2 3 4 다음