오늘 한일
최호성님 독하게C 강의 메모리와 포인터 부분 강의를 듣고 정리했다.
프로그래머스 '스킬트리' 문제를 30분 안에 못풀었다.
아쉽다. 테스트 케이스 50%를 통과 못한 이유가 뭔지 내일 생각해야겠다.
C언어 포인터 도서를 읽었다.
2차원 포인터에서 예제를 풀었는데, 배열명은 주소상수여서 배열명에는 주소를 할당할 수 없다는 점을 자꾸 잊어서 예제를 틀리는 나를 발견했다.
배열명의 주소는 바꿀 수 없다!
포인터는 '변수'이므로 주소를 바꿀 수 있음을 기억하자.
*이 붙으면 '대상체'를 가리키는 것이다.
포인터가 같은 주소값을 가지고 있다고 하더라도, 가리키는 '대상체'가 다르면 두 포인터는 다른 포인터다.
같은 주소값을 가지고 있는 포인터라도, 하나는 2차원 배열 전체를 가리킬 수 있고, 하나는 두번째 '행'을 대표하는 포인터일 수 있다.
(어려웠던 부분)
배열이 int imsi[3][2]; 있다고 할 때,
*imsi는 *(imsi+0) 과 같다.
imsi에서 0번째 떨어진 곳의 대상체는 imsi[0]이다. 하나의 행은 2개의 int 요소로 구성되므로, sizeof(*imsi)는 8bytes이다.
배열 imsi가 위와 같다고 할 때,
imsi + 0과 *(imsi + 0)은 다르다.
imsi+0은 배열명이 주소이므로, 단지 주소라서 4bytes이다.
*(imsi+0)은 imsi[0]을 뜻하므로, 한 '행'이 대상이다. 그래서 8bytes이다.
포인터변수는 '주소'를 저장하기 때문에 크기는 무조건 4bytes이다.
2년 전에 읽다가 그만 두었는데, 다시 읽으니까 그나마 덜 어렵게 느껴졌다. 이대로 쭈욱 완독하자!
생각거리
최호성님 독하게C 인프런 강의를 반정도 수강해서, 책을 구매했다.
예제를 빠짐없이 풀어보고 C에 대한 기본을 다져두고 싶다.
그리고 나서 C++ 강좌를 듣고 코딩테스트 대비를 하려고 한다.
차근차근 급하지 않게 공부해야겠다.
갑자기 날이 많이 추워지고 눈도 왔다. 코로나도 추위도 이겨내면서 seize the day!
'일상 > Today I Learn(TIL)' 카테고리의 다른 글
2020-02-06 TIL (0) | 2020.02.06 |
---|---|
2020-02-05 TIL (0) | 2020.02.05 |
2020-02-03 TIL (0) | 2020.02.03 |
2019-11-01 TIL python dataframe 2개 이상 컬럼으로 조인 (0) | 2019.11.01 |
2019-10-08 TIL 파이썬 순열 (0) | 2019.10.08 |