반응형

전체 648

C언어 포인터에 대한 이해(1)

C언어를 사용하게되면 포인터에 대한 이해가 필수입니다. 그래서 천천히 정리도 할겸 글을 씁니다. 그전에 포인터를 그냥 공부하기보단 왜 포인터가 필요한가를 느껴야지 더 와닿지 않을까 생각합니다. 저도 한동한 손을 놓고 있던지라 생각나는대로 정리를 하겠습니다. 포인터는 정말 유용한 도구인데요, 우선 포인터의 정의를 알아야 하겠습니다. 포인터는 번지값을 가지는 변수입니다. Type *P; 여기서 *는 포인터 변수를 선언하는 구두점입니다. Type은 포인터 변수가 가리키는 주소에 선언된 변수의 타입을 나타냅니다. 포인터변수는 주소값만을 취하기때문에 포인터변수의 크기는 항상 4byte로 일정합니다.(여기서 4byte는 32비트시스템에 해당함) 번지값을 갖는것은 의미가 참 큽니다. 그림으로 생각해야 이해가 쉬우니 ..

MinGw을 사용해보자

MinGw은 GCC를 윈도우에서 사용할수있게 해주는 도구모음입니다. 뭐 그밖에 여러가지 도구들이 있죠 MSYS같은. 어쨋은 GCC를 사용하기위해 MinGw를 설치하는데요. 에디트플러스에 맞물려 사용해보려합니다. 우선 MinGw홈페이지에가서 다운로드를 합시다. 실행을 하게되면 필요에 맞는 도구를 선택하고 설치하면됩니다. http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download 에디티 플러스도 설치를 해주시구요. 윈도우 실행창에서 시스템 환경 변수 편집을 쳐서 찾습니다. 환경변수(N)...에 가셔서 시스템 변수(S) 중 path 항목에가서 아래 추가를 해줍니다. 추가값은 자신의 MinGw 설치위치에따라 달라집니다. 여..

프로그래밍/cpp 2013.11.28

project Anarchy(프로젝트 아나키) 시작

cocos2dx도 c++을 지원하지만 사용하면서 2D의 한계때문에 아쉽긴했다. 하지만 2D만의 매력, 그리고 C++을 사용할 수 있다면, 정말 강력하고 쉬운 접근성은 cocos2dx의 매력이라생각된다. 유니티3D또한 무료배포를 하기때문에 잠깐 끄적거려봤다. C#은 친숙하지않아...gg 아나키는 C++을 지원하기때문에 우선 설치 ㄱㄱ싱 하복엔진의 위엄을 느껴보기위해 설치해보고 취미겸 끄적거려보려한다. 우선 아나키사이트를 가서 다운로드를 하자. 영문으로 나온다. 한글이 나오게하고싶다면 주소뒤에 /ko를 붙이면된다. 다운로드클릭 그리고 설치(설치는 체크박스 디폴트로 했다.) 설치후 diectx SDK가 설치안됐다고 나온다.. 우선 실행을 해봤다. 우선 디폴트 설치를 해서 그런지 유니티와 비교해서엄청 가볍다는 ..

유클리드 호제법(최대공약수, 최소공배수 구하기)

유클리드의 호제법은 쉽게 말해서 최대공약수를 구하는 알고리즘이다. A와 B의 최대공약수를 구한다면, A=QB+R 위 식처럼 A와 B의 관계를 나타내도록한다.(A>B) 이상태에서 다시 제수(B)과 나머지(R)의 관계를 같은 형식으로 나타내보자. B=Q'R+R' 나머지로 제수를 계속해서 나눠간다. 이렇게 반복하다보면 언젠가 제수가 딱 떨어지는 순간이 생기게된다. 생각해 보면 모든 수에대하여 성립한다. 이 때 떨어지는 순간 제수가 최대 공약수가 된다는 것이 호제법이다. 연습삼아 유클리드 호제법으로 최대공약수를 구해보자. *제수:나누는 수 *피제수:나눔을 당하는수 *나머지:나머지 GCD(3,6) 2 = 6/3...0 나머지가 0일때 제수가 3이므로 GCD는 3 GCD(8,28) 3 = 28 / 8...4 2 =..

혐오스런 마츠코의 일생(영화)

2006년작 영화 혐오스런 마츠코의 일생은 네이버평점을 보면 알겠지만 9점이 넘어간다. 네이버 평점을 반밖에 믿지 않지만, 이 영화는 9점을 주고싶다. 영화는 제목그대로 마츠코의 일생을 다룬 영화다. 혐오스럽다는 제목을 보면 영화가 참 기괴할 것이라 생각할지 모르겠다. 물론 기괴하다. 뮤지컬적이고, 신파적이고, 코믹스럽기도하며, 알수없는 장르가 섞인 좀처럼 보기힘든 분위기의 영화라그럴지모른다. 전반적인 영화의 분위기는 동화적이다. 그래서 영상이 사실적이면서도 과장되었다. 영화의 전개는 빠른편이다. 지루할 틈은 없다. 영화는 계속해서 사랑에대한 원초적인 질문을 던지는 듯하다. 시작부터 끝까지 모든 사건의 원인은 '사랑' 이었다. 이또한 과장된 설정으로 다루지만, 이영화가 평점이 높은 이유는 그만큼 과장된 ..

관심사/영 화 2013.11.14

don't you see - 사카이 이즈미/자드(zard)

얼마전 일본노래가 갑자기 땡겨서, 찾아보다 don't you see 라는 노래를 요새 듣고있다. 일본 노래지만, 알만한 분을 다 아실거다. 그 유명한 드래곤볼의 엔딩곡이었다. 자드라알려진 사카이이즈미가 부른 곡이었지만, 난 이걸 지금서 알게되었고, 그 가수가 안타깝게도 하늘나라에 있다는걸 알게되었다. 이것저것 검색을 하며 자드는 여성스러운 외모와 성격때문에 팬들이 한층많았을거란 생각이들었다. 아직도 그녀를 기리며 추모를 하며, 가수없는 콘서트를 하는것을 보니, 정말 인기가 많았을거다. 참 의아한게 TV출연을 거의 하지않았다는 것인데, 그럼에도 많은 팬들이 있었던걸 보면 그녀만의 독특한 매력이 있음이 분명하다. 나 또한 그런 매력에 이끌렸는지, 이렇게 포스팅까지 하는듯하다. 우선 가물가물한 일본어실력으로 ..

관심사/기타 2013.11.14

다익스트라 알고리즘

다익스트라의 핵심은 다음글을 보기 바랍니다. 2015/06/02 - [프로그래밍/알고리즘] - 다익스트라 알고리즘(Dijkstra Algorithm)최단경로 알고리즘 아래 글은 제가 오래전 다익스트라를 처음 공부할 때 쓴 글이므로 이해가지 않는 부분도 있고 많이 부족합니다. 코드만 참고하시길 바랍니다. 다익스트라 알고리즘, 이름조차 어렵다. 이 알고리즘을 이해하기위해선 깊이 우선, 너비우선 탐색을 이해해야한다. 2013/06/05 - [프로그래밍/알고리즘] - 탐색-깊이우선탐색, 너비우선탐색 2013/06/07 - [프로그래밍/알고리즘] - 위상정렬(topological sort) 다익스트라 알고리즘은 시작점을 정하고 끝점을 정하면 그 두점사이 최단거리를 구하는 알고리즘이다. 다익스트라 알고리즘의 너비우..

3항연산자

A?B:C; 위 식은 3항연산자의 기본형태다. A가 참이면 B 거짓이면 C로 가라는 의미다. 특징을 좀더 살펴보면 ? 뒤의 문장과 :뒤의 문장은 if esle 문과 비슷하다. else문이 스위치형식으로 거짓인경우 실행되고 참인경우 실행안되는 것 처럼 말이다. 그럼아래식을 보고 이야기하자. A?B,B':C:C'; 여기서 B'와 C'는 조건에 대한 결과와는 상관없다. 여기서 if else문과 좀 다른 특징이 눈에 뛰는데 A가 참인경우 B와 B'가 실행된다. 그리고 C'가 실행된다. 하지만 A가 거짓인경우? B' 가 실행되는가? 그렇지않다 이경우 C와 C'가 실행된다. 이는 if else문의 성격을 띠지만 ,연산자가 쓰이게되면 goto문의 특징을 갖게된다는것이다. 결국 A가 참인경우 C는 실행이 안되므로 결론..

프로그래밍/cpp 2013.06.17

클래스 내부의 static 에 관한 고찰

static 멤버함수는 this객체를 받지않는다.(static은 사용범위가 지정되어 있기때문이다. static멤버함수의 경우 사용범위는 클래스가 생성한 객체가아닌 클래스 전반적으로 사용하는 함수, 다시말하면 클래스의 static 멤버를 다루는 함수라 봐도 좋다) 때문에 static 멤버함수는 클래스형에 의해서 호출되는 함수다. 객체를 통해 호출하려고해도 그 객체의 클래스형만 살펴본 후 맞다면 호출한다. static이 아닌 멤버의 경우 함수내에서 this의 호출을 통해 이루어진다. 기본적으로 this가 전달된후 컴파일러상에서 this로 접근한다. 그렇기때문에 static 멤버변수가 아닌 변수를 접근하는건 불가능하다. 또산 static 선언은 목적파일 링크시에 알리지않는다는 뜻이다.(선언된 파일 내부에서만 ..

프로그래밍/cpp 2013.06.13
반응형