C언어에서의 포인터
- 포인터
결국 포인터가 가리키는 것은 시작주소 그게 변수가 되었든 함수가 되었든 구조체가 되었든
- 하드웨어 메모리 특정
하드웨어 메모리 주소 - 레지스터 32개의 범용 레지스터 64개의 IO 레지스터 그 외에 램 등등
하드웨어 메모리 특정 가능한 프로그래밍 언어는 C,C++
- C언어의 배열
c언어는 string이 없고 단순히 char의 배열 그때 배열의 크기를 고정으로 하지 않고 동적으로 관리하고 싶은 경우 malloc 함수 사용
- 메모리 참조
어떤 함수에서 계산을 하였고 그 값을 리턴한다는 가정하에, 계산의 값이 2개 이상인 경우를 생각해보자. 함수는 단 하나의 값을 리턴한다. 2개의 값을 리턴할 수는 없다. 그 경우 결과 값을 포인터 변수에 저장한다. 함수가 종료된 이후에도 결과 값이 저장된 포인터 함수는 변화가 없다. 주소로 처리를 해야한다.
- 구조체 사용
구조체는 하나의 새로운 타입이다. 다양한 타입의 변수들을 모아서 struct 연산자로 생성한다 함수에 param 으로 여러개의 변수를 넘기기보다 구조체를 통해서 한 번에 넘기는게 편하다. 그러나 구조체 변수명 자체를 넘길 수는 없다. 그때 변수에 대한 주소를 넘긴다. 물론 함수의 param 도 포인터변수를 받는 형태로 바꾼다 그 후 계산에 사용되는 (기존)변수들의 형변환을 시켜준다. 그게 귀찮으면 arrow 연산자를 사용한다.