오늘 한일 

 

최호성님 독하게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!

728x90

'일상 > 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

+ Recent posts