오늘 한 일 

 

최호성님의 독하게C 강의에서 메모리와 포인터 부분 강의를 들었다. 

 

다시 체계적으로 배우는 C언어 포인터 도서에서,  문자열과 포인터, 포인터와 포인터 부분을 공부했다. 

내가 구체적으로 헷갈리고 있던게 뭔지를 알았다. 

 

C언어에서 문자열은 문.자.배.열. 이다. 문자열은 '상수'다. 변할 수 없다. 

1은  0으로 변할 수 없는 것 처럼, 문자열 "archie"도 마찬가지로 변할 수 없는 것이다. 

 

char * string 

string = "archie" 

char dim[] = "dimention"

일 때, 

 

string은 "a"의 주소를 알고 있다. 

string[1] 을 출력하면 r 이 출력된다. 

string = dim 하고, 

string[1] 을 출력하면, i가 나온다. 

 

string = string + 1 해도 되는데, 

dim = dim + 1 하면 안된다. 왜냐하면 dim은 배열명이어서, 주소 상수이기 때문에, 변할 수 없다. 

 

그리고 dim[1] = 'h' 하면, dim 이 "dhmention" 으로 바뀐다. 

근데 string[1]= 'h' 못한다. 안된다. 왜나하면 string이 가리키는 문자배열 "archie"는 '상수'이기 때문이다. 

문자열은 '상수'다. 

(정확히 string은 a의 주소만 알고있을 뿐이다.) 

 

생각거리 

무튼, 위의 내용이 누군가에게는 별거 아닐수도 있겠지만. "이거 다 아는거 아냐?" 할 수도 있는데.

기뻤다! 하하.

 

 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-11 TIL  (0) 2020.02.11
2020-02-10 TIL  (0) 2020.02.10
2020-02-06 TIL  (0) 2020.02.06
2020-02-05 TIL  (0) 2020.02.05
2020-02-04 TIL  (0) 2020.02.04

오늘 한 일 

최호성님 독하게 시작하는 C 프로그래밍에서 메모리와 포인터 부분을 예제를 풀고 책도 읽었다. 

디버깅할때 메모리 창 들여다보는게 이제는 익숙해졌다. 

 

다시 체계적으로 배우는 C언어 포인터 도서가 이제는 재미있는(?)지경에 이르렀다. 

고통스럽기도 어렵기도 밉기도(?)하다. 

어려운 것을 반복해서 읽고 도전하니까 그나마 나아지는 것을 느끼는 것이 재미있다. 

 

만화로 쉽게 배우는 CPU 도서는 3분의 2정도 읽었으니, 이제 끝이 보인다. 

 

생각거리 

오늘은 문제를 못풀었다. 

 

도서관에 가서 공부하다가, 책가방 서비스를 신청한 도서가 도착했다는 문자를 받아서 반가운 김에 급.. 책 읽기를 시작했다.

'이제야 언니에게' 를 읽고 감정에 빠져있느라 공부시간 중 3시간을 책에 썼다. 

단숨에 읽었다.

후회되지는 않지만, 아무래도 소설책은 주말에 읽는 것이 좋은 것 같다! 

 

계획은 지키라고 있는 거니까. 앞으로는 잘 지키도록 노력하기! :)

 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-10 TIL  (0) 2020.02.10
2020-02-07 TIL  (0) 2020.02.07
2020-02-05 TIL  (0) 2020.02.05
2020-02-04 TIL  (0) 2020.02.04
2020-02-03 TIL  (0) 2020.02.03

오늘 한일 

 

다시 체계적으로 배우는 C언어 포인터 (정재은 저) 의 2차원 배열과 포인터 부분을 2번 읽었다. 

중요한 부분은 따라 그려보며 이해하려고 노력했다. 

시간을 들인 만큼 보람있었다. 

 

만화로 쉽게 배우는 CPU 라는 책을 가벼운 마음으로 반정도 읽었다. 

뇌를 자극하는 윈도우 시스템 프로그래밍 책을 본격적으로 읽기 전에 가볍게 읽으려고 빌렸다. 

조금 오그라는 부분도 있어서 피식 웃음이 났다.

 

포인터 때문에 끙.. 했는데 리프레시 했다. 

 

프로그래머스에서 풀던 문제를 아직 완성을 못했다. 

어느 부분이 테스트케이스를 만족시키지 못하는 것인지... 답답하다. 

소수 찾기 문제도 테스트케이스 12개 중에 3개를 통과 못해서 실패했다. 

 

생각거리

1년 동안 파이썬을 쓰면서 좀 더 근본적인 것에 대한 갈증(..?) 이 있었던 것 같다. 

C, C++, 자료구조, 알고리즘을 연습하면서 기본기를 다지는 시간에 충실해야겠다. 

나에겐 지금 이것들이 우선으로 필요하다.

 

그래야 나중에 필요하다면 파이썬도 잘 습득할 수 있을 것 같다. 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-07 TIL  (0) 2020.02.07
2020-02-06 TIL  (0) 2020.02.06
2020-02-04 TIL  (0) 2020.02.04
2020-02-03 TIL  (0) 2020.02.03
2019-11-01 TIL python dataframe 2개 이상 컬럼으로 조인  (0) 2019.11.01

오늘 한일 

 

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

오늘 한일 

 

뇌를 자극하는 윈도우 시스템 프로그래밍 1장 내용을 공부했다. 

컴퓨터구조의 기본을 짚어보는 내용이었다. (CPU, 메모리, 버스 시스템의 역할과 구조)

 

최호성님의 독하게C 강의를 듣고 노트를 포스팅했다. 

 

깃허브를 새로 만들었다. (일일커밋을 도전 시작이다! 데일리 잔디심기 ㄱㄱ )

 

코딩테스트 연습을 위해 프로그래머스 'K번째수' 문제를 python으로 풀어서 push 했다. 

 


생각거리 

 

코테 연습을 위해 프로그래머스, 백준 사이트를 이용한 생각이다. 

그런데 보통 답안을 C++, java로 채점해준다. 

C강의를 꼼꼼하게 듣고 예제를 풀어본 후 바로 C++강의를 듣고 코테 준비를 C++로 해야하는지 고민하고 있다. 

 

퇴사 후 첫 월요일을 맞았다. 

신종 코로나 바이러스가 기승을 부리고 있는 뒤숭숭한 요즘이지만, 첫 공부시간이 알차고 즐거웠다. 

아무쪼록 오늘도, 내일도 seize the day! 

 

 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-05 TIL  (0) 2020.02.05
2020-02-04 TIL  (0) 2020.02.04
2019-11-01 TIL python dataframe 2개 이상 컬럼으로 조인  (0) 2019.11.01
2019-10-08 TIL 파이썬 순열  (0) 2019.10.08
2019-10-07 TIL 데이터프레임 중복 제거  (0) 2019.10.07

https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221535156243

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-04 TIL  (0) 2020.02.04
2020-02-03 TIL  (0) 2020.02.03
2019-10-08 TIL 파이썬 순열  (0) 2019.10.08
2019-10-07 TIL 데이터프레임 중복 제거  (0) 2019.10.07
2019-09-30 TIL 파이썬을 파이썬답게  (0) 2019.09.30

파이썬은 for문 없이 순열을 구할 수 있다. 

 

import itertools

pool = ['A', 'B', 'C']

print(list(map(''.join, itertools.permutations(pool))))
print(list(map(''.join, itertools.permutations(pool, 2))))

itertools를 import 하여 for문을 사용하지 않고도 순열을 구할 수 있다. 

728x90

+ Recent posts