1016
TOOL : visual stdio 2019
참고 책 : 혼자 공부하는 C언어 개정판 / 한빛아카데미 - 서현우
이미지, 폰트 같은 것들을 배열로 저장을 한다.
주소값을 보이게 다시 코드를 추가해줌
포인트로도 address를 찍어서 확인해봤다
P : 포인터
A : 배열
즉 둘은 같은 맥락으로 사용가능하다.
Char 형을 추가해서 확인해 봤다.
나타나는 값은 Address / Index / Data 이 순서로 값이 나오게 된다.
10-2
포인터 변수를 받아서 사용하고싶다.
ary << Base_Address
offset 단위로 넣어주면 된다.
*pa : Address 의 단위로 값을 저장(? Address라는 그릇을 저장)
배열과 포인터
같지만 왜 포인터를 쓸까?
데이터가 있으면 굳이 데이터를 카피해서 오지않고 자유롭게 데이터 변경이 가능하기 때문에 ------------ 사용 data 절약
ex) ai 이미지 >> 계산해서 쓰려면 어마어마한 data를 사용하게 된다.
따라서 포인터를 사용하게 되면 부분 부분만 필요한 부분에 사용하면 해결 완료.
또한 배열명과 포인터의 차이는 SIZEOF에서 나타나는데
SIZEOF >> SIZE를 나타내주는 변수
SIZEOF의 연산결과가 다르다
int ary[3];
int *pa = ary;
sizeof(ary)
sizeof(py)
포인터는 값을 바꿀 수 있음
배열명은 값을 바꿀수 있음
바꾸려면 index 필요함
ary는 index 필요
pa는 index 필요 x >>>> 왜? 자기 자신이 address가 될 수있기때문에
sizeof를 통한 비교
Address 값은 변화 x
pa size가 ary보다 작음을 확인했다.
IORD / IOWR과 같은맥락
배열에 값을 입력하는 함수
최대 값 찾아 shorthing(정렬) 후 최대값을 찾기 >> size 계산할 필요없다.
p314