C

· C
포인터C언어에서 포인터는 메모리의 특정 주소를 가리키는 변수이다. 포인터를 사용하면 변수나 배열 등의 메모리 위치를 직접 조작할 수 있다. 포인터는 간접 참조, 동적 메모리 할당, 배열과 문자열 처리, 함수 인수로 배열을 전달하는 등의 다양한 용도로 사용된다. 포인터 선언포인터를 선언할 때는 데이터 타입 뒤에 *을 붙인다.int *ptr; // int형 변수를 가리키는 포인터 포인터 초기화포인터 변수는 특정 변수의 주소를 할당 받아야 한다. 주소를 얻기 위해서는 주소 연산자 &를 사용한다.int var = 10;int *ptr = &var; // var의 주소를 ptr에 저장 포인터와 배열배열의 이름은 포인터와 유사하게 작동하며, 배열 첫 번째 요소의 주소를 가리킨다.int arr[5] = {1, 2..
· C++
참조와 복사의 차이int &ref = arr[0]; // 참조int copy = arr[0]; // 복사 참조 (Reference)참조(Reference) :  int &ref는 ref가 arr[0]을 참조하도록 한다. 이는 ref가 arr[n]의 다른 이름이 되도록 한다. 따라서 ref를 수정하면 arr 배열의 값도 수정된다. 이는 실제 데이터에 대한 별칭을 제공하므로 메모리를 추가로 사용하지 않으며, 성능 측면에서 이점이 있을 수 있다 복사 (Copy)int copy라면 arr[n]의 값을 copy에 복사하게 된다. 이렇게 되면 copy와 arr[n]은 서로 다른 메모리 공간을 차지하게 되며, copy를 수정하더라도 arr[n]에는 영향을 미치지 않는다. 예시참조 사용#include using nam..
· C
C언어의 컴파일 과정 C언어로 만든 코드, 이를테면 main.c라는 이름을 가진 파일을 컴파일 하면 그 결과로 main.exe 파일이 생성된다. 하지만 실행 파일은 한 번에 생성되는 것이 아니라 전처리기 - 컴파일러 - 어셈블러 - 링커를 통과하는 일련의 과정을 거쳐 생성된다. 전처리 과정 (pre-processing, main.c → main.i) - 본격적으로 컴파일 하기 전에 처리할 작업들을 관리 - 외부에 선언된 다양한 소스 코드, 라이브러리를 포함한다. (e.g. #include) - 프로그래밍의 편의를 위해 작성된 매크로를 변환한다. (e.g. #define) - 컴파일할 영역을 명시한다. 컴파일 과정 (compile, main.i → main.s) - 전처리가 완료되어도 여전히 소스 코드 상..