Programming Language(97)
-
열혈C - Chapter 17 포인터의 포인터
포인터는 상수, 변수의 형태를 띌수 있다.상수로는 변수의 이름을 대표적으로 볼 수 있고, 변수의 형태는 대표적으로 포인터 변수를 볼 수 있다.그런데 사실 그냥 궂이 이렇게 나눠서 이야기하지는 않는다.보통은 대부분 포인터라고 한다면 포인터 변수를 이야기 하지만 그렇지 않은 경우도 있다는걸 알아두자.여기서 이야기할 내용은 포인터 변수에 대한 내용이다. Chapter 17에서 말하고자 하는 가장 핵심이 되는 내용은 이런것이다. 이전에 int num = 12;int * ptr = #과 같이 사용했었다.여기서 ptr에 &num으로 num의 주소값을 전달해줌으로써 포인터 ptr이 num을 바라보도록 했었다.그렇다면 ???? = &ptr이 ptr의 주소값을 담는 변수의 타입은 어떻게 될까? 기본적으로 주소값을..
2024.10.13 -
열혈C - Chapter 16 다차원 배열
16-1 다차원 배열의 이해와 활용다차원 배열은 2차원 배열과, 3차원 배열을 의미한다.문법적으로는 4차원 배열이 있는데 이는 현실에 4차원 배열을 표현해야할 이유가 없기 때문에 사용되지 않는다.거기서도 보통은 2차원 배열이 대부분이고 3차원 배열은 거의 사용되지 않는다. 먼저 2차원 배열은 1차원 배열이 여러개 합쳐져 있는 형태를 띄고 그 선언 방법은 int arr[3][5];와 같이 선언을 한다. 여기서 3부분은 5의 길이를 갖는 배열의 갯수가 3개가 합쳐진 형태임을 의미한다.그냥 쉽게 생각하면 int arr[배열의 갯수][배열의 길이];라고 생각하면 된다. 이때 값에 접근하는 방법은printf("%d", arr[1][3]);와 같이 접근이 가능하고 이것의 의미는 2번째 배열의 4번째 요소에 접근한..
2024.10.13 -
열혈C - Chapter 14 포인터와 함수에 대한 이해
14-1 함수의 인자로 배열 전달하기인자의 전달에 대해서 생각해보자예를 들어 int num = 10;fct(num); //임의의 함수 fct라는 코드를 작성했다고 보자.fct에 num을 전달했다고 보통 말하는데 사실 fct에 num이란 변수를 전달할 방법은 없다.다만 인자로 전달할때 매개체가 되는 변수(매개변수)를 선언해서 num이 갖고 있는 값을 복사해서 넣어 전달하는 방법이지 num자체를 전달하는 것은 아니다.그래서 사실 정확하게 표현하려면 fct함수를 호출 하면서 num이 갖고 있는 값을 전달한다 라고 말하는게 정확하다. 그래서 이렇게 우리는 변수에 저장된 값을 전달할 수 있다.그러면 함수의 인자로 배열을 통째로 전달할 수 있을까?위에서 말한 fct에 num을 넣으면 num에 있는 값이 fct의 매..
2024.10.09 -
열혈C - Chapter 13 포인터와 배열! 함께 이해하기
13-1 포인터와 배열의 관계 먼저 배열의 형태를 보자.int arr[3];이렇게 배열 arr을 선언 했다.여기서 배열의 이름인 arr은 배열의 첫번째 요소의 주소값을 갖고 있게 된다arr이 arr[0]을 가리키는것이고 arr은 arr[0]의 주소값을 갖고 있는 상수가 된다.이 형태를 보면 int num;int* ptr;ptr = #의 코드와 비슷한 기능을 한다는 것을 알 수 있다. 여기서 포인터와 배열의 다른점은 포인터 변수의 경우는 int num1;int num2; int* ptr;ptr = &num1;ptr = &num2;와 같이 처음 넣었던 주소값을 다른 값의 주소값으로 변경이 가능하다는 점이다.그러나 배열의 경우는 arr안에 있는 arr[0]의 주소값을 변경할 수 없다. 포인터 변수는 변..
2024.10.07 -
열혈C - Chapter 12 포인터의 이해
12-1 포인터란 무엇인가?주관적인 내용이 아닌 객관적인 내용을 이해해야한다.포인터를 이용하면 메모리에 직접 접근이 가능하기에 C언어가 Low레벨언어의 특성을 지닌다고 이야기한다. 포인터는 변수가 될수도, 상수가 될 수 도 있다.그런데 당장은 뭐가 포인터 변수이고 상수임을 논하기엔 이르다.우리는 지금 당장 포인터 변수를 공부할 것이다. 그러면 포인터 변수란 무엇일까?포인터 변수란 주소값을 저장하는 변수이다.그리고 이 주소값이란 것은 정수이다.예를 들어 32bit 시스템이라면 CPU가 한번에 연산할 수 있는 데이터의 크기가 32비트이고, 한번에 이동할 수 있는 데이터의 크기가 32bit라는 것이다. 그래서 보통 32bit 시스템에서는 주소값을 32비트로 표현한다.반면에 근래에 많이 사용되는 64bit시스템..
2024.10.03 -
열혈C - Chapter 11 1차원 배열
내가 모두의 코드에서 갑자기 윤성우님의 열혈 C로 와서 동영상으로 강의를 듣게 된 원인이다.이전에 배열과 포인터를 배울때도 참 어려웠는데 C에서 배열과 포인터에 대한 이해는 정말 몇번을 봐도 이해가 안되는 부분들이 많은것 같다.내가 개발공부를 시작하고 취직을 하고 개발에 대해 조금은 접한 실무자라고 생각했지만 이 포인터 개념을 접하는 순간 머리가 하얘진다그리고 한참은 멀었다는 생각을 하게 되는 원인이 된것도 같다.이제 윤성우님의 배열과 포인터에 대해서 공부해보면서 조금의 근심, 걱정을 날릴 수 있는 해결책이 되었으면 좋겠다. 11-1 배열의 이해와 배열의 선언 및 초기화 방법변수의 선언법과 배열의 선언법은 아래와 같다.//변수의 선언법변수타입 변수명;ex) int num;//배열의 선언법배열타입 배열명 ..
2024.10.03