본문 바로가기

170315 C (포인터, 반복문) 1. 포인터포인터는 값을 가리키지 않고 주소를 가리킨다.단항 연산자로서의 * 와 &는 변수계산에 사용된다. &연산자는 주소값을 저장하는 연산* 연산자는 자신에게 저장된 주소값이 들어있는 곳의 데이터 C 언어에서 포인터는 다음과 같이 정의할 수 있습니다. (포인터에 주소값이 저장되는 데이터의 형) *(포인터의 이름); 혹은 아래와 같이 정의할 수 도 있습니다. (포인터에 주소값이 저장되는 데이터의 형)* (포인터의 이름); int *a;int b; a = &b;b = 2; printf("b : %d\n", b);printf("*a : %d\n", *a); b에 2가 수록되어 있고, a에 b의 주소가 있는 모양이다.*a를 사용했을 경우 a에 들어있는 주소 b에 가서 b의 데이터를 가져온다. 2. 반복문반복문.. 더보기
170315 레지스터 1. 레지스터 CPU 내부에 위치하는 다목적 공간으로 고속으로 데이터 처리가 가능하다.현재 처리되고있는 데이터를 저장하는것이 특징. 1)레지스터 구분 범용 레지스터 EAX 누산기 산술연산에 사용(함수의 결과값 저장) EBX 베이스 레지스터 특정 주소 저장(주소 지정 확대) ECX 카운트 레지스터 루프의 반복횟수나 좌우 시프트 횟수 기억 EDX 데이터 레지스터 일반 자료 저장 (입출력 동작에 사용) 포인터 레지스터 EBP 베이스 포인터 스택의 첫부분 (?), SS 레지스터와 함께 사용되어 스택내의 변수값을 읽는데 사용함 ESP 스택 포인터 스택의 끝부분을 가리킴 EIP 명령 포인터 다음명령어의 Offset(다음 명령의 주소)을 저장하여 다음 수행될 명령의 주소 형성 플래그 레지스터 EFLAGS 플래그 레지.. 더보기
170315 스택(STACK) 자료구조와 프롤로그, 에필로그 1. 스택(STACK) LIFO(Last In First Out)을 동작원리로 하는 자료구조.스택의 특성을 이용한 작업들- 지역변수 저장- 매개변수 전달- 임시 데이터 백업- 함수호출,복귀 정보 저장 Top (), Pop(), Push(), isEmpty() 등의 함수로 관리1) 스택 프레임- 함수와는 독립적인 메모리 영역- 함수 호출시 생성, 복귀시 삭제- 해당 함수는 스택을 독립적으로 사용 (새로운 함수를 사용할 때 마다 스택이 새로 할당됨) 2) 동작 순서예 ) 메인함수 → 1함수 → 2함수 → 1함수 복귀 → 메인함수 복귀스택 프레임이 생성되고 삭제되는곳에 프롤로그와 에필로그가있다. 3) 프롤로그 & 에필로그함수 호출시 프롤로그가 실행되고 복귀시 에필로그가 실행 되는데 위치는 대충 이곳이다. ma.. 더보기