![[C++] Struct 구조체 / 구조체 배열 / 구조체 배열 포인터](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FomuuM%2FbtsGLikSjJR%2FAAAAAAAAAAAAAAAAAAAAAKHn4AO6aIpEsDI94SMY1_dAp93iYK-eMaDI-PFARj79%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BZZCiydYa%252FUO4%252FPmK%252F3PJcZcp1c%253D)
구조체 (struct)사용자가 하나 이상의 기본 타입을 가지고 새로운 자료형을 정의하는 사용자 정의 타입(🔹 사용자 정의 타입 : int, char, double과 같은 자료형을 사용자가 임의로 만드는 것.)모든 정보를 하나의 단위로 묶을 수 있는 형식이다.서로 관련된 정보를 하나의 단위로 묶어서 저장할 수 있다.하나의 구조체 안에 여러 종류의 데이터를 저장할 수 있다.❓사용하는 이유농구 선수에 관련된 모든 정보들을 저장한다고 했을 때, 이를 위해 각 이름, 연봉, 신장, 체중, 평균 득점 수, 자유투 성공률, 어시스트 수 등의 정보를 저장해야 할 때 구조체를 사용하여 관리하면 편하다. 💡 왜 배열은 적합하지 않을까?배열은 여러 개의 값을 저장할 수는 있지만, 데이터형이 모두 같아야 하기 때문이다.(..
![[C++] 포인터(pointer), 2차 포인터](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbTylUy%2FbtsGKWBuGs0%2FAAAAAAAAAAAAAAAAAAAAAJEbZaiEkwyQQeKfalmEunCKYalz451iVWY7AONOHFiQ%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DFai3dvcRqAB0y9Pyogdjj26is%252B4%253D)
Pointer포인터는 일반 데이터를 저장하는 변수가 아닌 메모리의 주소 값을 저장하는 변수이다.포인터도 변수기 때문에 메모리 어딘가에 저장되기 때문에 포인터도 주소 값을 가지고 있다.포인터 연산자포인터 변수를 이용하면서 2가지의 연산자가 사용되는데, & 과 *이다.여기서 &는 주소 연산자이고 *은 참조 연산자이다. 🟣 주소 연산자 &는 변수 이름 앞에 사용하여 해당 변수의 메모리 주소 값을 반환한다.🟣 참조 연산자 *는 포인터의 이름이나 주소 앞에 사용하며 해당 주소를 참조하여 주소에 저장되어 있는 값을 반환한다.포인터 예제123456789101112131415#include stdio.h> int main(){ int a = 10; printf("a = %d\n", a); // a = ..
![[C++] printf로 출력, 자료형, sizeof](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcDHCif%2FbtsGKVvIpev%2FAAAAAAAAAAAAAAAAAAAAAKQ4_TtvjhCO71TRv7WPjDBzRCZvDIwG8aYLS3Xji45f%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DEhEUZTj6x2XxFFe6HAj5FH9m0ME%253D)
printfC/C++에서 넣어준 글자를 출력해주는 함수이다.기본 사용법- 헤더 파일 inclue하기- printf ("출력할 데이터와 그 서식", 변수 1, 변수 2... );printf() 서식 문자 정수형%d : 10진수 정수%x : 16진수 정수 (소문자)%X : 16진수 정수 (대문자) 실수형%f : 10진수 실수 (float형)%e : 10진수 실수 (지수형 표기)%lf : 10진수 실수 (double형) 문자열%s : 문자열 출력printf에서 사용하는 특수기호\' : 작은따옴표\" : 큰 따옴표\? : 물음표\\ : 백 슬래시(\)\n : 줄 바꿈, 개행, new line\t : 수평 탭 (tab)sizeof데이터(변수, 상수, 타입등..)의 크기를 반환하는 연산자.데이터 크기의 단위는 바..
![[C++] #define - 매크로](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcldJMA%2FbtsFF0TBSRQ%2FAAAAAAAAAAAAAAAAAAAAAJKFngB7jy0UqEvSCb5nCpYtr8yjGa1aj9GZPJwE9GEi%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dt9fHZ8j3pqFYMbZccGiY4TUNT34%253D)
#define-매크로-전처리기-단순 치환장점1. 가독성2. 유지보수사용법#define 매크로이름 치환할 값 #define NUMBERONE 1 ⚠️주의점⚠️단순 치환이기 때문에 세미콜론을 작성할 경우 세미콜론까지 치환해버린다예제11234567891011121314151617#define NUMBERONE 1#define NUMBERTWO 2 #include iostream>using namespace std; int main() { int num1 = NUMBERONE; int num2 = NUMBERTWO; cout num1 endl; cout num2 endl; return 0;} cs실행 결과예제21234567891011121314151617181920212..
![[C++] C++의 컴파일 순서](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FRgQTK%2FbtsGHkKU5Ma%2FAAAAAAAAAAAAAAAAAAAAAJvMBYQ72TrK7-Dqv9YZohB9narNi8LbXeowtddPVmhq%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DyMSTi0trhJ8PynVHdQtKPBhTz1o%253D)
[C, C++] 컴파일 순서Cpp(기계어로 번역) ➡️ 전처리기(#include 같이 #으로 시작하는 건) ➡️ 컴파일 ➡️ 어셈블링 - obj(목적) 파일 생성 ➡️ Linker ➡️ exe1. Preprocessor (전처리단계)매크로 프로세서(MacroProcess)라고 한다. C++언어로 작성된 프로그램의 소스를 문법적으로 해석하고 구문 에러(Syntax error)의 존재 여부 등 을 평가한다. 주석으로 되어있는 문장을 제거한다. #include, #define, #indef, #else, #endif, using, typedef 와 같은 키워드에 따라 필요한 파일들을 읽고 실제 컴파일이 가능하도록 프로그램 소스를 만드는 작업을 수행한다.2. Complie (컴파일)전처리 단계에서 제공한 프로그..
![[네트워크] 3-Way Handshake](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbaEsBl%2FbtsG6MrLKAb%2FAAAAAAAAAAAAAAAAAAAAACcKHsauxl5W3e0G-GptHKdByueeRx58anO04FeRvjLe%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DFeO4iHvDAAWoBcwDaEgIo9KuxZw%253D)
★KEYWORD★전송제어 프로토콜에서 통신을 하는 장치간에 서로 연결이 잘 되어있는지 확인하는 과정과 방식 / 송수신자 사이에 연락을 확인 / TCP3-Way Handshake전송제어 프로토콜(TCP)에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정/방식이다.더 쉽게 말해서 송수신자(데이터를 주고 받는 2사람이라고 생각하면 쉬울 것 같다)사이에 연결을 확인하는 과정이다. TCP 프로토콜은 연결지향적이다. 이는 상대방이 내 신호를 받을 수 있는지 확인하고 전송을 하는 것을 의미한다. 이때 내 신호를 받을 수 있는 지 확인하는 것이 3 way handshake이다. 3 way handshake는 client / server사이에서 이루어진다.3-Way Handshake의 과정 ➡️1단계클라이..