Programming Language(60)
-
열혈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 -
열혈 C - Chapter 09 C언어의 핵심! 함수!
09-1 함수를 정의하고 선언하기함수를 정의하는 것은 main함수를 정의하는 것과 비슷하다.함수를 만드는 이유다수의 작은 단위의 함수를 만들어서 프로그램을 작성하면 큰문제를 작게 쪼개서 해결하는 효과를 얻을수 있다. 근데 단순히 이런 이야기로 함수의 전체가 설명되지는 않지만 우선 이 정도로 이해하자. 함수에 대해서 기본적으로 어떻게 경험을 하던간에 main함수를 포함해서 함수의 크기는 작으면 작을 수록 좋다, 함수의 크기가 크다는 것은 함수가 잘못 디자인 되었다고 볼 수 있다. 보통은 내가 작성한 함수는 1000라인이 넘어가! 라고 한다면 이건 자랑할 부분이 아닌것이다.오히려 짧은 라인으로 끝나는 함수일 수록 좋은 함수인 것이다. 그렇기에 불필요하게 큰 함수가 만들어 지지 않도록 주의해야하나 무조건 또 ..
2024.10.02