1. 포인터 변수
- 변수를 선언하면 메모리에 공간이 생기고 변수명 앞에 &를 붙여 출력하면 메모리 공간의 주소를 확인할 수 있다.
- 메모리 주소를 확인하기 위한 서식 지정자는 %p 이다.
- 포인터 변수는 메모리의 주소값을 저장하는 변수다. 앞에 *가 꼭 붙는다.
4. 포인터 변수가 가리키는 주소의 값에 접근하려면 변수명 앞에 *를 붙인다.
2. 포인터로 값 바꾸기 - 미션맨
포인터 변수는 다른 변수의 주소를 알아낼 수 있고, 알아낸 변수의 주소에 찾아가 값도 직접 바꿀 수 있다.
여기서 변수의 주소를 안다는 건 = 변수가 존재하는 메모리 공간의 주소를 안다는 뜻이다.
1. 철수네 주소가 변수 미션맨에 들어있으니 암호, 즉 값은 *미션맨으로 확인할 수 있다.
2. 따라서 *미션맨에 곱하기 3을 하고
3. 이를 다시 *미션맨에 저장한다
3. 포인터 추가하기 - 스파이
미션맨과 스파이 같은 포인터 변수는 어떤 변수의 주소를 값으로 가지고 있으며 주소를 이용해 주소에 해당하는 변수의 값을 직접 바꿀 수 있다.
3. 배열과 포인터
- 포인터 변수를 선언하고 배열을 넣으면 포인터 변수가 배열의 시작 주소를 가리킨다.
- 포인터 변수로 배열의 i번째 요소에 접근하려면 포인터변수명[i] 또는 *(포인터변수명 + i) 와 같이 작성
- 배열명을 이용해서도 포인터 변수와 동일하게 배열명[i] 또는 *(배열명 + i)와 같은 형태로 배열의 i번째 요소에 접근할 수 있다.
*& 는 서로 상쇄되어 아무것도 없는 것과 같다. ( &는 주소이며, *는 그 주소의 값이기 때문에)
프로젝트 : 물고기 키우기
- 지역변수 : main() 함수 내부와 같이 중괄호 {} 안에 선언한 변수이다. 중괄호 안에서만 접근할 수 있고, 중괄호 외부나 다른 함수 등에서는 접근할 수 없다.
- 전역변수 : 전역 공간(중괄호로 제한되지 않은)에 선언한 변수로, 지역과 상관없이 어느 곳에서든 접근할 수 있다. 전역변수는 보통 함수를 선언하는 곳과 같은 위치에 선언하면 된다.
long형 : int형과 같이 정수를 담을 때 사용할 수 있는데, ANSI 표준에서는 int형은 최소 2바이트, long형은 최소 4바이트가 되어야 한다고 명시한다. 컴파일러마다 자료형의 바이트 수에 차이가 있을 수 있지만, 윈도우에서는 int형과 long형 모두 4바이트의 크기를 가진다.
셀프체크
'Programming Language > C' 카테고리의 다른 글
[나도코딩] 9장.다양한 자료형 하나로 묶기 : 구조체 (0) | 2023.04.01 |
---|---|
[나도코딩] 8장. 배열에 배열 더하기 : 다차원 배열 (0) | 2023.04.01 |
[나도코딩] 6장.여러 데이터 한번에 저장하기 : 배열과 문자열 (0) | 2023.03.14 |
[나도코딩] 5장.같은 일 한곳에서 처리하기 : 함수 (0) | 2023.03.13 |
[나도코딩] 4장.조건에 따라 다른 일하기 : 조건문 (0) | 2023.03.10 |