C

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