일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- C++ 언어 #핵심정리
- C언어 #부록
- C언어 # 핵심 정리
- MySQL #핵심정리
- Bandit
- PHP #핵심정리
- HTML #핵심정리
- C++ 언어 # 핵심 정리
- C언어 # 부록
- shell_script
- Hacking #Baic
- C++ 언어 # 핵심정리
- C언어 #핵심정리
- Today
- Total
목록전체 글 (60)
cCcode

1. struct(구조체) 와 class(클래스) Class 는 기본적으로 자료 저장(변수의 역할) + 자료 처리(함수의 역할)을 겸하고 있습니다. 즉, class 는 변수와 함수를 묶어놓은 형태라고 할 수 있겠네요. 그리고 이를 하나의 틀로 보면 하나의 자료형으로 생각해도 됩니다. 이처럼 저희가 특정한 틀(자료형)을 사용해서 만든 변수를 저희는 객체(오브젝트)라고 부릅니다. 그래서 객체라는 단어가 나온다면 변수 또는 메모리상의 공간으로 대체 해석해도 됩니다. 일단 구조체를 사용해보겠습니다. 이 경우 다음과 같은 경고가 하나 뜨게 됩니다. Private_Information 이라는 구조체의 age 변수가 초기화 되지 않았다는 경고입니다. 사실 경고일뿐이므로 무시해도 되지만, 경고를 해결하는 습관을 들이기..

* 지금부터 작성할 기본지식들은 Normaltic 님의 강좌에 궁금한 내용을 조사한 후 추가한 포스팅입니다. https://www.youtube.com/channel/UCGfK2k6fq4S9agJ82GG86cg 1. IP 주소 IP 주소는 Internet Protocol address 의 약자로, 네트워크에서 컴퓨터끼리 통신할 때 사용되는 특수 번호입니다. IP주소를 빗대어 표현하자면 전화번호라고 생각하시면 됩니다. 그 전화번호를 이용해 저희는 통화(즉, 데이터 통신)를 주고 받는 것이죠. 흔히 자주보는 유튜브 또한 우리가 사용하는 컴퓨터(또는 모바일)와 유튜브 서버가 통신하는겁니다. 즉, 우리의 컴퓨터 외에 우리가 통신하려는 대상에게도 IP 주소는 있어야 합니다. (= 외부와 통신을 하기 위해선 IP ..

1. C++ 의 기본문법 - 2 오버 로드(Over load) 그러니까 다중 정의에 대해서 알아보겠습니다. 일단 우리가 항상 흔히 볼수 있는 그리고 접하는 swap 함수를 정의한 후 사용하겠습니다. 이 때 swap 함수는 std 라는 namespace에 정의되어 있기 때문에 해당 부분을 주석 처리 및 삭제하고 정의해야 합니다. 근데 여기서 swap 함수로 int 형이 아닌 자료형을 매개변수로 주고 싶다면 swap 함수(매개변수의 자료형이 다른)를 자료형에 따라 각각 정의합니다. (이 때 함수를 구분하기 위해 명칭의 수정이 필요합니다.) #include // using namespace std; void swap(int& First, int& Second)// int 형 { int temp = First;..

C++언어란 무엇일까요? C++은 기존의 C언어에서 여러가지 기능을 추가해 만든 프로그래밍 언어입니다. C++은 C언어에서 절차지향적 특징을 가져왔고, Simula(노르웨이인 달과 뉘고르가 시뮬레이션 목적으로 확장하여 개발한 언어 입니다. 차후 많은 언어의 기반이 되었습니다.)에서 객체지향적 특징을 가져왔습니다. 그래도 C++은 C를 기반으로 만들어졌기에 C 표준 라이브러리를 사용할 수 있습니다. 때문에 해당 글을 읽기전에 C언어 핵심정리를 먼저 읽고 오시기를 바랍니다. 1. C++ 의 기본 문법 우리가 C언어를 배울 때 C언어 표준 함수들을 사용하기 위해서 include 전처리자를 사용해 파일을 포함했는데요. C++ 의 경우에는 더 많은 기능들이 포함된 이라는 헤더파일을 사용합니다. iostream 은..

1. 전역 변수 사용하기 지금까지는 함수 안에서 선언하는 지역변수를 선언했습니다. 제가 지역변수는 선언한 해당 함수 내에서만 사용할 수 있다고 언급 했었죠. (함수의 범위는 중괄호 시작부터 끝까지 입니다.) 그에 반해 전역변수는 프로그램 전체에서 공유하는 값으로 모든 범위 즉, 모든 함수에서 사용할 수 있습니다. 이처럼 변수가 선언되지 않은 외부 블록에서는 변수를 사용할 수 없습니다. 이처럼 변수가 사용되는 범위(Scope)가 정해져있기 때문에 주의해야합니다. 다만, 이처럼 넓은 범위에 선언을 했다면 좁은 범위에서 사용가능합니다. 전역 변수는 함수 바깥에 선언합니다. + 전역 변수의 초기값은 (초기화 하지 않을 경우) 0으로 초기화 됩니다. 이게 초기화 해주지 않으면 쓰레기 값이 들어가는 지역변수와의 차..

1. 노드 추가 함수 사용하기 그전에는 단일 연결 리스트를 구현했는데요. 오늘은 연결리스트의 중간에 새로운 노드를 끼워넣는 함수를 사용할 예정입니다. 여기서 중요한 점은 cursor = head->next 형식으로 할당한다면 노드의 주소를 저장하기 때문에 해당 cursor 순회용 포인터를 해제하면 당연스레 해당 순회용 포인터에 저장된 노드 또한 해제 된다는 점입니다. 따라서 노드의 동적할당을 해제하는 부분을 보시면 우선 구조체를 선언합니다. 해당 구조체로 선언한 변수는 cursor 의 다음 주소를 저장하게 됩니다. 왜냐하면 노드를 해제하려면 필연적으로 cursor 도 해제되어야 하는데 cursor을 해제하게 되면 다음 노드의 주소로 접근할 수 없기 때문입니다. 그래서 cursor의 다음 주소를 임시로 저..

1. 퀵 정렬 함수 사용하기 버블 정렬 함수는 직접 구현했습니다만, 퀵 정렬의 경우에는 해당 정렬을 사용하기 위해 퀵 정렬 함수를 사용합니다. 퀵 정렬 함수에는 정렬할 배열 또는 메모리의 주소, 요소 개수, 요소 크기, 비교 함수를 넣어줍니다. (파일에 선언되어 있습니다.) qsort 함수를 사용하기전 비교 함수를 만들어야 합니다. 오름차순일 경우 1) one two 일 때는 1을 반환 내림차순일 경우 1) one two 일 때는 - 1을 반환 이건 qsort 함수를 사용하기 위한 약속입니다. 비교함수를 만들 때는 반드시 i..

1. 파일 포인터 활용하기 지금까지 파일을 사용할 때는 파일 크기를 이미 알고 있었기에 버퍼 크기를 파일 크기보다 크게 작성하는 게 가능했습니다. 하지만 실제로 파일 크기를 가정하고 코드를 작성할 수는 없습니다. 그래서 해당 파일의 크기를 구하고 싶다면 fseek 나 ftell 함수를 사용하면 됩니다. (파일에 선언되어 있습니다.) 파일 크기를 구할 때도 파일 포인터가 필요합니다. 따라서 fopen 함수 파일모드 "r"로 열었습니다. fseek 함수는 기준점에서 이동할 거리(크기)를 지정하여 파일 포인터를 이동시킵니다. 그 후 읽기/쓰기 함수를 사용한다면 그 파일 포인터가 이동된 위치부터 읽기/쓰기를 하게 됩니다. SEEK_END 외에도 fseek 함수에는 총 기준점 3개가 존재합니다. 간단히 말해 SE..