본문 바로가기

프로그래밍

참조자 Reference 참조자가 무었인지에 들어가기 앞서서 포인터를 잠깐 알아보도록 하겠습니다. 변수 num에 123이라는 값을 넣고 num의 주소값을 po에 넣고..... 등등 있습니다. 이 소스를 보고 이해를 하셨다면 포인터를 잘 이해하고 계신거겠죠. 저는 다 까먹었습니다. ㅠㅠhttp://keybreak.tistory.com/149http://keybreak.tistory.com/152 위 소스에서 처음보는 선언이 있습니다. int &num2 = num; 인데요. num2의 주소값에 num의 변수를 넣어주는걸까요? 어디 이상한 선언이 하나 타나났습니다.이 이상한 선언이 바로 참조자 라는 것인데요. 참조자는 별명과 같습니다. 자신의 이름이 있지만 별명을 부르는 경우도 있죠. 참조자가 바로 그런것 입니다. 그러면 그 이상한 .. 더보기
자료형 bool 자료형 bool은 C언어에서는 사용되지 않다가 최근에 사용되는 것으로 알고 있습니다. 아마 Visual Studio의 상위버전들에서 가능하겠죠. 자료형 bool은 원래 C++에서 사용되던거라서 C++ 자료형으로 많이 알고 있다고 합니다. C에서는 참과 거짓을 나타낼 때, 0과 1을 사용했습니다. 0은 거짓을 나타내고, 1은 참을 나타냈습니다. 그래서 C에서 무한루프를 돌릴려고 할때 while(1){}을 많이 사용해보셨을 겁니다. C와 C++을 배우면서 혼동하기 쉬운게 true =1, false =0 이라는 것입니다. true는 그저 true고 false는 false 입니다. 절대 1과 0이 아닙니다.의미상 1과 0으로 사용되지만 같다는건 아니라는 거죠. 제목으로 자료형 bool 이라고 썼습니다. bool.. 더보기
using C++을 코딩하면서 정말 불편하다고 느끼는게 std::cout std::cin std::endl; 이렇게 std::을 적어줘야 한다는 것 입니다.정말 불편해요..... 이름공간이라는 것을 배웠으니까 std::cout이 어떻게 이루어져있는지 이해 할 수 있습니다.std 라는 이름공간의 cout를 사용하겠다는 거죠. 하지만 정말 편리한 기능이 있습니다. using namepsace std; 이렇게 하면 std라는 이름공간을 계속해서 사용할거라는 의미입니다. 그래서 std::cout라고 코딩하지 않고 그냥 cout라고 코딩할 수 있게 됩니다. 더보기
이름공간 이름공간 (namespace) 말 그대로 이름공간 입니다. ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ ??뭐지 이 ㅂ...ㅅ 은? 이름공간은 공부하면서 느꼈는데 정말 필요하다고 생각되는 부분입니다. C++을 공부하면서 포스팅을 하지만 나중에 더 좋은게 있다고 생각되면 제 생각이 틀렸다고 느끼겠죠. 하지만 지금 상태에서는 이름공간은 정말 좋은 기능이라고 생각됩니다. 이름공간이 어떻게 사용되냐면, A, B, C 사람이 같은 프로젝트를 한다고 가정합니다.그러면 각자 변수를 사용하고 자신만의 코딩스타일로 소스를 작성할 겁니다. 그리고 나서 소스 파일을 합쳐서 빌드를 하려고 하니 같은 변수를 사용하고 있다면 이름을 전부다 바꿔야 하는 상황이 발생합니다.소스 10줄 20줄 하는 거면 그냥 바꾸는게 정신건강에 좋을텐데.... 더보기
인라인 함수 inline 함수는 말 그대로 직역하면 '라인 안으로' 라는 의미를 가집니다. 어떤 의미로 사용되는지 알아보도록 하겠습니다. 매크로 함수에 대해서 알고 계시나요? 모르시면 여기로: http://keybreak.tistory.com/44저도 다 까먹었다는게 함정. ㅋㅋㅋㅋㅋ 매크로 함수의 장점은 실행 속도가 빠르다는 것 입니다. 하지만 정의하기가 조금 힘듭니다. 간단한건 상관없지만 복잡해지면 그렇죠. 두개의 이미지를 보셨을때 다른 점을 찾아보시면 출력하는 값이 test(5) 이냐 (5)*(5) 이냐 차이입니다. 이게 인라인 함수입니다. ? 뭐라고 설명도 안하는데 끝? inline 함수는 함수 몸체부분이 대체되었을때 인라인화 되었다고 합니다.즉, 2번째 이미지가 인라인화 되었다고 할 수 있습니다. 인라인 함.. 더보기
진수 여러분들은 진수에 대해서 다 배우셨을 겁니다. 왜냐구요? 중학교 고등학교 나오셨다면 다 배웠을 꺼니까요. 이정도는 다 기본적으로 알고계실겁니다. 그런데 C에서는 어떻게 나타낼 수 있을까요? 8진수로 나타내고 싶다면 %d 대신에 %o 를 이용하면 되고, 마찬가지로 16진수는 %x로 나타내면 됩니다. 그러면 8진수, 16진수의 값을 넣어서 10진수로 표현은 어떻게 할까... 라는 궁금점이 생깁니다. 값을 넣고 싶다면 16진수는 0x 를 붙여주면 되고 8진수는 0을 붙여주면 됩니다. 더보기
Default Value 디폴트 값 (Default Value) 은 C++에서 기본적으로 설정된 값이라고 생각하시면 됩니다. 예제를 보면서 설명하도록 할께요. Func() 함수를 총 3번을 호출 했습니다. Func 함수는 num1과 num2를 출력하는 아주 간단한 예제 입니다. 그런데 이상한 점은 첫번째는 10과 20이 출력됬고, 두번째는 5와 20, 세번째는 5와 7이 출력됬습니다. Func에 num1은 10으로 num2는 20으로 선언되어있는데 말이죠... 첫번째 Func() 첫번째 Func 함수는 값을 넣어주지 않았습니다. 값을 넣어주지 않았는데 호출을 하려고 보니 10과 20이 있습니다. 여기서 C++은 값이 없었기 때문에 선언되었던 10과 20을 넣어주게 됩니다. 두번째 Func() 두번째 Func는 5만 넣어주었는데요.. 더보기
코딩과 실행 방법 저는 우분투 14.04 LTS에서 python을 공부하도록 하겠습니다.이게 정말 더 편한거 같아서요 ㅎㅎㅎ 처음에 코딩을 어떻게 해야하는지 실행은 어떻게 해야하는지 정말 모르겠더군요.... 책을 찾아봐도 잘 모르겠고... 보고 있는 책이 정말 멍청한 책인듯 합니다.알려주지도 않아요.... 우분투를 설치하셨으면 Python 이라는 폴더를 만들고 터미널을 켜서 Python 디렉토리까지 이동합니다. 경로는 cd /home/이름/Desktop/Python 으로 이동하시면 됩니다. python이라고 입력을 하면 다음과 같이 나오게 됩니다. 소문자로 입력하세요. 대소문자 구별을 합니다. 우분투에는 설치가 되어있어서 이렇게 나오게 됩니다. (만약 설치가 되어있지 않으면 설치방법을 구글에서 검색해보세요~) 코딩방법 1.. 더보기
함수 오버로딩 C언어만 공부하다가 C++를 공부하니 참 새롭네요. 정말 C++ 이름처러 C에서 ++된 언어같습니다.하지만.... 아직 초반이라서 그런지 매번 사용하던 C만큼 편하지 않습니다. ㅠ C언어에서는 다음과 같은 함수사용은 불가능합니다. 같은 이름의 Func1 함수가 있습니다. 인자 값은 int형을 1개 받는 것도 int형을 2개 받는 함수가 있습니다.이 소스를 빌드하면 다음과 같은 오류 목록이 나오게 됩니다. 뭐 C언어를 공부해보셨다면 오류 목록이 어떤 의미로 나타난건지 알 수 있습니다. 기본적으로 Func1이라는 함수가 2개가 존재한다는게 말이 안됩니다. 하지만 C++에서는 가능합니다. 똑같은 소스로 빌드를 했습니다. 단지 확장자 .c 와 .cpp의 차이입니다. 이것이 바로 함수 오버로딩 (Function .. 더보기
printf 와 scanf 앞으로 C언어를 공부하면서 수도 없이 사용해야 할 printf 와 scanf에 대해서 알아보도록 하겠습니다.정말 마르고 닳도록 사용합니다. ㅋㅋㅋ printf의 기능 printf는 프로그래머가 나타내고 싶은 문구를 모니터에 출력해주는 기능을 합니다.\n이 개행을 한다는 건 이미 배웠습니다. ㅎ 여러개의 숫자를 받아야 하고, 여러개의 숫자를 출력해야 한다면 위 이미지처럼 순서대로 적어주면 알아서 출력을 하게 됩니다. scanf의 기능 scanf는 프로그램 사용자가 입력을 할 수 있도록 해주는 기능을 합니다. 마찬가지로 scanf도 여러개의 숫자를 받고 싶다면 printf와 똑같이 해주면 됩니다. scanf에서 중요한 것은 & 입니다.나중에 포인터를 하게 되면 왜 &를 사용하게 되는지 알게 됩니다. 그러니 .. 더보기
Python 설치하기 파이썬 언어가 쉽다고 해서 해보려고 합니다. 리눅스를 쓰다보면 파이썬을 많이 사용하게 되더라구요. 그냥 뭔지도 모르고 쓰고 있어서 자세하게 공부해 보려고 합니다.(펄도 사용하더라구... FTZ 할때 많이 씁니다...) 1. 윈도우에서 사용하기 python.org에 접속하면 Download를 할 수 있습니다. 파이썬의 다운로드 종류가 2개가 있습니다. 3버전 부터는 문법이 달라졌다고 합니다.기존의 파이썬의 경우 print "Hello world" 였다면 3버전 부터는 print("Hello world") 로 바뀌게 된겁니다. (사실... 3버전 이상부터가 더 친숙합니다.... C도 배우고 그래서 그런가요...? ㅋㅋㅋ ) 저는 2.7.9 버전을 다운로드 하도록 하겠습니다. 친절하게 next를 눌러서 설치해.. 더보기
C언어와 다른 C++ C++를 처음 공부해보는데 처음 부분이라서 그런지 정말 불편합니다. C언어 처럼 헤더파일을 넣어주고 main 함수도 있고. 변수도 선언하고... 이상한건 std::cout , > a; (a에 값을 대입) 4. 더보기
연산자 연산자에 대해서 설명하도록 하겠습니다. 연산자...? 하면 어떤게 생각나시나요? 사칙연산? + - * / 가 있죠. C언어를 공부하게 되시면 정말 다양한 연산자들이 나오게 됩니다. C언어를 다시 공부하면서 블로깅하는데도 안쓰는 연산자도 많은거 같아요.하지만 다 쓸때가 있어서 존재하겠죠? 대입 연산자대입은 중, 고등학교 수학시간에 수도 없이 들어봤을겁니다. X가 10일때 X+1=? 하고 물어본다면 X가 10이니까 X에 10을 대입한다고 하죠.즉, 대입은 어딘가에 넣어준다. 저장한다. 라는 의미로 쓰이게 됩니다.C언어도 마찬가지죠. 대입연산자가 눈에 들어오시나요? 그냥 a는 10이라고 초기화 하는거 말고는 없죠. 당연합니다.왜냐하면 a를 10으로 초기화 하는것이 a에 10을 대입하는것이기 때문입니다. ===.. 더보기
변수 변수에 대해서 자세하게 알아보도록 하겠습니다. 변수: 변하는 수. 변하는 값.상수: 변하지 않는 수. 고정된 값. 이렇게 알고있지 않으신가요? 소스 분석하기 글에서도 이렇게 알려드렸습니다. 하지만 정확한 의미는 아니라고 했죠. 변수는 데이터를 저장할 수 있는 메모리공간에 붙여진 이름 입니다. 조금 어렵죠? 간단하게 설명하자면, 우리가 코딩을합니다. a라는 이름을 선언하죠. 하지만 선언만한다고 되는게 아니라 어딘가에 저장도 해야합니다. 그래야 읽을 수 있을겁니다.그 저장되는 공간의 이름이 변수인 것입니다. 이래도 어렵습니다;;; 더 쉽게 말하면 온라인게임을 하기 위해서 설치를 해야합니다. 설치는 하드디스크에하게 되죠. 왜? 저장을 할까요? 다시 읽어드려서 실행해야 하기 때문입니다. 이때 저장된 공간이 변수.. 더보기
소스 분석하기 이번에는 소스 작성하기에서 사용한 소스를 분석해보도록 하겠습니다. 정말 본격적으로 C의 기본이라고 할 수 있는 것이죠. 자 한줄 한줄 천천히 설명하도록 하겠습니다. =================================================================================================================== 주석 주석은 프로그램을 작성하면서 어떤 변수가 어떻게 사용되었는지 알기 쉽게 하기위하여 작성하는 것입니다.그리고 이 프로그램은 내가 작성했다 라고 표시도 할 수 있고, 소스를 작성하다가 제 3자에게 보여줬을때도 유용하게 사용할 수 있습니다. 주석에는 2가지 방식으로 작성할 수 있습니다. 방법1 /* */ 사용하기 /**/ 은 여러줄에 주석.. 더보기
소스 작성하기 본격적으로 소스를 작성해보도록 하겠습니다. 저처럼 같은 예제를 사용하셔도 좋고, 다르게 사용하셔도 좋습니다.아무것도 모르신다면 저와 같은 예제를 사용해주세요. 예제 파일을 제공하지는 않습니다. 왜냐하면 손으로 직접 쳐봐야 하기 때문이죠. 자 아주 간단한 소스입니다. ^^ (뭐가 간단한거야 ㅡㅡ;; 무슨 개소리인지ㅠㅠ) 위 예제처럼 똑같이 한번 작성해보시길 바랍니다.!!!! 그래야 실력이 늘어나요. 위와 같이 작성하고 Ctrl + F7 을 눌러줍니다. Ctrl + F7 을 눌러주면 하단에 빌드 시작이라는 문구가 나오게됩니다. 그리고 성공했는지 오류가 있는지 알려줍니다.성공을 했기 때문에 Ctrl + F5 를 눌러줍니다. 짠!!! 성공했는데 디버그 에러가 나옵니다. ㅎㅎㅎㅎㅎㅎㅎㅎㅎ 제가 잘못했냐구요? 네... 더보기
소스작성 준비하기 C언어를 정말 하나도 모르시는분들 기준으로 작성하려고 합니다.그래서 내용이 좀 길어질 수도 있다는걸 알려드려요~누구나 프로그래밍을 쉽게 접하고 사용할 수 있었으면 좋겠습니다. 무작정 따라오시면 됩니다.!!! 먼저 Visual Studio를 실행합니다. 여기에서 파일 - 새로 만들기 - 프로젝트 를 선택합니다. 왼쪽의 Visual C++를 선택하신 후에, 가운데 Win32 콘솔 응용프로그램을 선택합니다. 그리고 이름을 Hello World!!라고 입력하신 후에 확인을 눌러줍니다. 다음과 같은 창이 뜨면 다음을 눌러줍니다. 콘솔 응용 프로그램을 체크해주시고, 추가옵션의 빈프로젝트에 체크해주세요. SDL은 체크 해제를 해줍니다.그리고 마침을 눌러줍니다. 오른쪽의 소스 파일을 오른쪽 마우스 클릭해줍니다. 추가 .. 더보기