본문 바로가기

전체 글221

c언어 포인터와 배열과의 관계 알아보기(배열의 이름과 포인터의 관계, 포인터를 배열처럼 사용하기, 배열 매개 변수) c언어 포인터와 배열과의 관계 알아보기(배열의 이름과 포인터의 관계, 포인터를 배열처럼 사용하기, 배열 매개 변수) 네 안녕하세요, 이번 포스팅에서는 c언어에서 쓰이는 포인터와 배열과의 관계에 대하여 알아보도록 하겠습니다. 포인터와 배열은 정말 떼어내려야 뗄 수가 없을 정도로 매우 깊은 연결고리가 있어서 이 둘의 관계를 아는 것은 정말 중요한 개념을 하나 알아가는 것과 똑같습니다. 그러니 이번 포스팅은 주의깊게 보시길 바라고, 지금부터 시작하도록 하겠습니다. 1. 포인터와 배열의 관계 사실 포인터와 배열이 관계가 있다고 그러면 뭔가 이상하다 느낄 수가 있을 겁니다. 배열은 하나의 그룹을 다룰 때 쓰는 것이고, 포인터는 간접 참조를 할 때 쓴다고 배웠으니까요. 그런데, 여기서 놀라운 사실이 하나 있습니다... 2022. 12. 7.
c언어 포인터와 함수와의 관계 알아보기(값에 의한 호출(call - by- value, 참조에 의한 호출(call - by - reference), swap(), scanf(), 포인터를 사용하는 반환 값) c언어 포인터와 함수와의 관계 알아보기(값에 의한 호출(call - by- value, 참조에 의한 호출(call - by - reference), swap(), scanf(), 포인터를 사용하는 반환 값) 네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 포인터와 함수와의 관계에 대하여 알아보도록 하겠습니다. 포인터와 함수는 실제로 서로 밀접한 관계가 있습니다. 그리고 실제로 포인터의 개념을 몰라도 포인터처럼 쓰는 함수 역시 존재하고요. 그래서 그러한 함수가 무엇인지, 그리고 이 둘이 어떤 관련이 있어 관계가 깊다 그러는지 한 번 알아보도록 하겠습니다. 1. 함수를 호출했을 때의 인수를 전달하는 방식 함수 호출 시에 인수를 전달하는 방식은 크게 2가지로 나뉩니다. 값에 의한 호출(call -by v.. 2022. 12. 7.
c언어 포인터로 연산하는 방법 알아보기 c언어 포인터로 연산하는 방법 알아보기 네 안녕하세요, 이번 포스팅에서는 포인터로 연산을 하는 방법에 대하여 알아보도록 하겠습니다. 우리가 일반적인 변수들로 연산을 하듯이, 포인터로도 연산을 할 수 있어야겠죠? 그래야 실질적으로 사용이 가능해지니까요. 그러면 그러한 연산을 어떻게 사용을 하는지 한 번 알아보도록 하겠습니다. 1. 포인터로 덧셈과 뺄셈 연산 하기 포인터로도 덧셈과 뺄셈 연산을 할 수 있습니다. 그렇지만 연산이 되는 과정이 좀 다릅니다. 일반적인 변수를 연산한다면 말 그대로 변수에 저장이 된 값의 크기가 변화하지만, 포인터로 연산을 하게 되면 포인터가 가리키는 객체의 크기가 변화하게 됩니다. 예를 한 번 들어보도록 하겠습니다. 일반 변수 a = 100과, 포인터 변수 *p = 100이 있다고.. 2022. 12. 7.
c언어 포인터 사용 시 주의할 점에 대하여 알아보기 c언어 포인터 사용 시 주의할 점에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 포인터를 사용할 때 주의해야 하는 점들에 대하여 알아보도록 하겠습니다. 우리가 직접 c언어를 이용을 하여 개발을 할 때 약방의 감초 역할을 하는 포인터지만, 이 포인터도 우리가 잘 다룰 수 있을 때까지 연습을 하고, 그 외 주의사항을 잘 알고 있어야 슬기롭게 쓸 수 있겠죠? 그래서 이번 포스팅에서 그러한 것들을 다룰 것입니다. 그럼 지금부터 시작하도록 하겠습니다. 1. 반드시 초기화를 하고 사용하기 이는 포인터가 c언어에서 사용하는 강력한 도구임과 동시에, 수많은 오류를 일으키게 하는 원천 중 하나입니다. 실제로 가장 흔한 오류가 초기화가 되지 않은 포인터를 사용하여 범한 오류입니다. 포인터 역시 다른 변수들이나 배열처.. 2022. 12. 7.
c언어 간접 참조 연산자 알아보기(*, &) c언어 간접 참조 연산자 알아보기(*, &) 네 안녕하세요, 이번 포스팅에서는 c언어에서 쓰는 간접 참조 연산자에 대하여 알아보는 시간을 가져보도록 하겠습니다. 간접 참조 연산자는 포인터를 통하여 값을 읽어오거나 변경할 수 있어서 편리하다는 장점을 가지고 있습니다. 그럼 지금부터 이 간접 참조 연산자에 대하여 알아보도록 하겠습니다. 1. 간접 참조 연산자의 해석 간접 참조 연산자는 이러한 기능을 가지고 있습니다. 예를 들어서 *a라는 변수가 있다고 가정을 해봅시다. 이 경우에는 a가 가리키고 있는 위치에 있는 데이터를 가져오라는 뜻이 됩니다. 그리고 단순히 이 포인터만 봤을 때는 여기에 어떤 값이 존재하고 있을지는 아무도 모릅니다. 그래서 형식 지정자를 붙여주는겁니다. 예를 들어서 정수형 포인터라면 정수.. 2022. 12. 7.
c언어 포인터 맛보기 c언어 포인터 맛보기 네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 변수인 포인터에 대하여 알아보도록 하겠습니다. 포인터는 메모리의 주소를 가지고 있는 변수인데, 실제로 코딩을 할 때 우리는 참조를 하는 경우가 많기 때문에 포인터를 많이 쓰게 됩니다. 그래서 정말 중요한 변수이기도 하고요. 그래서 이를 자세히 들여다보기 전에 간단하게만 보고 넘어가려 합니다. 그럼 지금부터 시작하도록 하겠습니다. 1. 주소 연산자 '&' 우리가 사용하는 포인터 변수는 메모리의 주소 값을 불러옵니다. 그중에 하나는 우리가 이미 쓰고 있었습니다. 바로 엠퍼센드(&)입니다. 우리가 scanf() 함수나 scanf_s() 함수를 쓸 때 쓰곤 했죠? 그리고 여기서 쓰는 엠퍼센드가 주소를 불러오는 기능을 한다고 말이죠. 그래.. 2022. 12. 7.
c언어 배열을 이용하여 여러 가지 문제 풀기(주사위 던지기, 극장 예약 시스템 제작하기, 최솟값 찾기, 영상 처리하기, 틱텍토(tic-tac-toe) 게임 만들기) c언어 배열을 이용하여 여러 가지 문제 풀기(주사위 던지기, 극장 예약 시스템 제작하기, 최솟값 찾기, 영상 처리하기, 틱텍토(tic-tac-toe) 게임 만들기) 네 안녕하세요, 이번 포스팅에서는 그 동안 배운 것들을 이용하여 여러 가지 문제들을 풀어보는 시간을 가져보도록 하겠습니다. 보통 우리가 프로그래밍을 할 때 데이터를 하나만 다루는 것이 아니라 여러개를 다루는 경우가 훨씬 많고, 그게 대다수이기 때문에 사실상 배열로 시작하여 배열로 끝난다고 봐도 과언이 아닙니다. 그래서 그만큼 연습이 더 필요한 부분이기도 합니다. 그럼 바로 시작해보도록 하겠습니다. 1. 주사위 던지기 제일 처음에 해볼 것은 주사위 던지기 게임을 하여 숫자가 나오는 빈도 수를 구하는 것을 할 것입니다. 여기서는 난수를 발생시키는.. 2022. 12. 7.
c언어 2차원 배열에 대하여 알아보기 c언어 2차원 배열에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 2차원 배열에 대하여 알아보도록 하겠습니다. 차원 역시 프로그래밍에서 정말 많이 다룹니다. 보통 2차원과 3차원을 다루는데, 그중에서 3차원은 보통 3D 랜더링을 하는 디자인 관련 전공인 사람들이 일반적인 프로그래밍 언어들보다 훨씬 좋은 개발 툴, 이를테면 '3D 스튜디오', '오토 캐드' 등은 일반적인 디자인을 하는 분들이나 설계 관련 일을 하시는 분들이 많이 쓰시고, '유니티', '언리얼 엔진' 등은 게임 개발을 하시는 분들이 많이 쓰십니다. 그러한 좋은 개발 도구들이 있어 그들을 이용하는 편이 훨씬 낫지만, 2차원 배열의 경우에는 프로그래밍 언어로 처리를 정말 많이 합니다. '선형 대수학' 이라는 학문에서 배우는 '행렬'이 바로.. 2022. 12. 7.