포인터의 배열 포인터의 배열이란, 배열의 원소안에 포인터들이 들어가는 배열이다. int *ap[10]; //10개의 주소가 들어갈 수 있는 포인터 배열 선언 포인터 배열은 이렇게 선언한다. 포인터의 배열을 사용하면 문자열을 저장할 때, 장점이 있다. 예를 들어, computer라는 2차원배열을 선언하고 원소를 넣어보자. char computer[3][8] = { "Mac", "Samsung", "Lenovo" }; 보통 이렇게 배열을 선언하고 초기화 할 것이다. 하지만, 이렇게 한다면 "Samsung"문자열은 8바이트를 다 사용하지만, Mac은 3바이트만 사용하게된다. 즉, "Mac"이란 문자열은 5바이트를 사용하지 않기때문에 메모리의 '낭비'가 생긴다. 그렇다면, 포인터의 배열을 사용하여 문자열을 저장..
이중 포인터 포인터는 다른 변수의 주소를 가르킨다고 학습했었다. 포인터도 변수이기 때문에, 포인터가 포인터를 가르킬 수 있다. 그것을, 포인터의 포인터. 즉, '이중 포인터'라고 한다. 간단한 일반적인 포인터의 예를 보자, int i = 10; int *p = &i; 이것은 지금까지 학습했던, 일반적인 포인터이다. 포인터 p는 변수 i를 가르키게 된다. 이중 포인터는 이렇게 표현한다. int i = 10; int *p = &i; int **q = &p; 포인터 p는 변수 i의 주소를 가르키고, 이중포인터 q는 포인터p의 주소를 가르킨다.(포인터 p도 변수이기 때문에 주소를 갖는다.) 텍스트로는 이해가 힘드니 그림으로 다시 알아보자. 참조연산자 * 주소연산자 & 를 활용해서 누가 어떤 값을 갖는지 확인해보..
https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 풀이 #include int main(void) { using namespace std; int arr[7] = {1, 1, 2, 2, 2, 8}; int a = 0; for(int i = 0; i > a; cout a에서 입력된다.
지금까지는 branch를 만들어 여러버전을 갈래로 나누었다. 이제는 여러 갈래로 나눈 branch를 master branch로 합치는 '병합'을 해보자. 이 단계는 최종 단계로, master branch로 병합하여 최종적으로 배포하기위한 단계이다. 병합을 하기 전에! 일단 지금 어떤식으로 branch가 만들어졌는지 시각적으로 확인해보자. git log --branches --decorate --graph --oneline 명령어를 입력하면, 시각적으로 확인할 수 있다. 1커밋 2커밋은 공통적으로 갖고있고, 2커밋에서 exp브랜치가 생성되었다. 그리고 4커밋은 master브랜치에서 만들어졌다. 이렇게 가지처럼 시각적으로 나온다. 우리가 그렸던 그림과 비슷하다는 것을 알 수 있다. merge로 병합해보자 e..
git에서는 branch를 사용하여 버전을 여러 갈래로 가지처럼 나눌 수 있다. 예를들어, 소프트웨어를 개발할때 여러 개발자가 각각 새로운 기능을 추가하고, 버그를 수정할 것이다. 즉, 여러 개발자가 동시에 코드를 수정한다. 분리된 영역에서.. 이런식으로 master 브랜치를 중심으로 여러 가지를 치며 새로운 기능을 만든다든가, 버그를 수정하면서 각각의 버전을 만든다. branch가 잘 완성되면, master branch로 병합해서 최종 배포한다. git branch 일단, branch를 연습하기 위해서 git_branch 폴더를 만들고, 해당 폴더에서 버전관리를 시작하기 위해서 git init를 해주었다. 그리고 f1.txt를 생성하여 a를 입력 후 1번째 커밋, f1.txt를 수정하여 b를 추가입력한..