Programming(57)
-
열혈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 -
모두의 코드 - 12 - 1, 2, 3. 포인터는 영희이다! (포인터)
12 - 1. 포인터는 영희이다! (포인터)전에도 C언어를 배우면서 포인트를 배울때 이해가 어렵고 머릿속이 복잡해서 놓아버릴 때가 여러번 있었다.이번엔 제대로 배워서 머리에 박아 넣기를 바라면서 시작해보자..!!! 포인트를 이해하기 앞서모든 데이터들은 메모리 상에 특정 공간에 저장되어 있다.각 메모리의 특정한 공간을 방이라고 한다면, 각 방에 데이터들이 들어가는 것이다. 한 방의 크기를 보통 1바이트로 정의 된다.우리가 만약 4바이트 짜리 int형 변수를 정의한다면 메모리 상에 4칸을 차지하게 된다. 프로그램이 작동할때 컴퓨터는 여러 방들에 있는 데이터들을 필요로 하게 된다.그렇기에 어떤 방에서 데이터를 가져올 지 구분하기 위해서 각 방에 주소를 붙여 놓았다.아파트의 호수와 비슷하게 말이다. 예를 들어 ..
2024.09.30