프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 포인터와 포인터배열을 알아보자. 포인터를 선언할 때 배열을 지정하기 위해서는 배열을 지정하고 배열의 열이 어느정도 있는지를 포인터에 알려주어야 한다. 배열 포인터 = 포인터를 배열처럼 사용하겠다. 포인터 배열 = 포인터에 int형을 하나하나 넣어서 배열처럼 만들겠다. 라는것이다. 구조체, Structure에 대해 알아보자. 구조체는, 각각의 같은 데이터가 무수히 많이 필요할 때 전부 타이핑하여 사용할 수 없음으로 다양한 데이터를 한개로 묶어서 여러개 사용할 수 있도록, 하는 것을 이야기 한다. 쉽게 말해서 도장을 파서 그때그때 파서 사용하는거라고 생각하면 편하다. 더 쉽게 이해하자면, 전에 배웠던 함수를 만드는것. 을 변수로 만든다고 생각하면 된다. 자료형 이라고 생각하면 된다. 자료형을 만들 때 cpp..

  • 더블포인터에 대해 알아보자. 더블포인터는 포인터를 가르키는 포인터를 의미한다. 포인터를 가르키는 포인터는 **을 붙여서 표현한다. 간단하게 포인터의 포인터이니까 더블포인터 포인터 두개 라고 이해하면 기억이 편하다. 예시를 살펴보자. 포인터를 사용해서 데이터의 변환을 실험해보자 간단하게 swap코드를 작성하여 테스트를 진행한다. 내부 데이터가 변환된다는 가정 하에 함수 내부에서 외부변수를 받아와서 변환해주어도,함수가 끝나는 순간 할당된 메모리는 전부 반환되고 리턴값을 제외한 모든 데이터가 사라지게 된다. 이것을 막기 위해 포인터를 사용하여 함수 연산을 진행할 수 있다. 예시를 살펴보자. 이중포인터 접근방법을 통해서 데이터가 아닌 주소만 바꾸어 보자. 포인터를 사용하면 주소만 변경함으로 써 데이터가 바뀐것 ..

  • 문자열 형태로 포인터를 선언할 수 있다. 포인터 변수를 문장으로 선언하였을 경우를 알아보자. 위와같이 선언했다고 가정해보자. 문자열은 전부 배열형태로 이어지게 메모리에 생성이 되고 마지막에 '\0'이 붙게된다. 그리고 char*pstr은 ptrSting 의 p를 가리키게 된다. 배열과 다른점이 무엇일까? 배열은 다음값을 배열의 list[0], list[1]이런식으로 접근이 가능하다. 그러나, 포인터로 선언된 문장의 경우에는 이런식으로 접근을 할 수 없다. 접근하게되면, 이런식으로 나타나게 된다. 이유가 무엇일까? pstr은 포인터이지 배열이 아니기 때문이다. 포인터는 위치좌표를 나타낼 뿐, 배열처럼 접근방법을 제공하지 않기 때문에 접근하기 위해서는 배열처럼 접근이 아닌, ++나 --같이 좌표를 직접 지정..

  • stream = 한방향으로 흐르는 단방향 통신이다. 콘솔 입출력을 위한 스트림은 생성이 자동으로 생성되고 자동으로 소멸된다. 이것은 표준 입출력시스템 stdio.h 라고 한다. 따로 생성하지 않아도 OS에서 자동으로 해준다. buffer = 데이터 처리장치간의 처리속도 때문에 임시로 저장해놓았다가 출력한다. getchar = 버퍼를 비워준다. 한단어씩 리턴해준다. 이번에는 포인터를 알아보자. 포인터는 주소라고 생각하면된다. 메모리의 주소값을 이야기한다. 포인터 변수 = 메모리의 주소값을 저장하기 위한 변수 이다. 포인터는 * 을 표기하여 포인터를 선언해줄 수 있다. 밑 예시를 살펴보자. 배열의 이름또한 포인터를 사용한다. 이러한 예시를 밑에서 확인해보자. 여기서 데이터 포인터가 1씩 증가하는것이 각 바이..

  • 이번에는 전역변수에서의 함수가 어떤식으로 전역변수와 지역변수를 받는지 알아보자 local count 가 1이 되는것 을 알 수 있다. 지역변수가 1이 계속 선언됨 으로 선언될 때 마다 1이 한개 더해지고 1이 되고가 반복되어 local count가 1로 출력된다. 여기서 static 으로 선언하면 어떻게 되는지 보자. 위와 같이 나타남을 알 수 있다. static int 가 count가 데이터가 중첩됨을 알 수 있다. 즉, count가 전역변수 처럼 취급되어 데이터가 중첩됨을 볼 수 있다. static은 한번만 초기화를 (최초선언시에만 변형이 가능하다.) 유효범위는 선언한 위치에서만 동작한다. Memory structure ---------------------------------------------..

  • 로또생성기 만들기 로또 생성기를 만들어보자 먼저 로또번호를 생성하기 위해서는 무엇이 필요한지 나열한다.로또번호는 랜덤함수로 생성해야한다.보너스번호 가 존재한다면, 일반번호 와 보너스번호를 나누어 주어야 한다.모든 코드가 순환하며, 내가 입력한 번호가 랜덤 생성한 번호와 같은지 검사해야한다.예시를 보자.이렇게 작성할 수 있다.만약, 복권번호를 작은수 부터 나열한다고 가정하면, Sort함수를 사용해서 값들을 정렬해야 한다.재귀함수 를 사용한 파보나치 수열 재귀함수를 사용한 피보나치를 출력한다. 코드는 매우 간단하다. 예시를 보자.단 3줄만 들어가면 출력할 수 있다. 쉽게 이해가 가지 않는다면, 풀어서 이해해보자. 파보나치 수열의 5번째 수를 출력하려고 한다고 가정한다.파보나치 수열의 5번 째 수는 0 1 1..