728x90
반응형

씹어먹는 C언어 9

배열(Array) - 2 메모리에서의 배열

오늘은 배열 2번째 시간 메모리에서 배열을 어떤식으로 처리하는지 알아보겠습니다. 메모리(RAM)을 사진과 같이 표현을 합니다. 여러개의 방이 쭉 나열되어 있는 형태로. 이전 수업에서 int arr[10]를 예시로 했기에, 여기서 1개의 방은 4byte 크기인것이죠. 하지만 메모리 입장에서 위 1개의 방에 저 값만 들어있지는 않습니다.프로그램을 실행하는데에는 어마어마한 갯수의 변수가 필요로 합니다. 그래서 사실적으로 메모리를 그려보면 figure2와 같습니다. 즉, arr[0] 의 앞과 arr[9] 뒤에는 아무것도 없는 것이 아니라 여러 변수의 값들이 저장되어 있는거죠. )물론 저 중에는 arr[1]도 있고, arr[3]도 있고는 합니다) 그렇기에 허락되지 않은 변수가 메모리에 접근을 하려면 이를 막는 조..

C language(c언어) 2024.10.02

배열(Array)에 대해 알아보자!

안녕하세요 오늘은 c언어에서 배열에 대한 개념을 공부해 보겠습니다. 이 부분도 내용이 매우 길어서, 몇개로 나눠서 공부를 해보도록 하겠습니다! 배열(Array)은 왜 필요할까요? 일반적인 배열의 개념은 여러 서로다른 카테고리가 같은 물건(값)을 보관하기 위한 상자라고 보통 생각합니다(제가 그렇게 생각합니다 맞다고.... 맞아!!!!) 책에서 나온 예시를 한번 들어보겠습니다.  예시 - Psi 는 친구로 부터 프로그램을 하나 짜 달라는 요청을 받았습니다. 친절한 Psi 는 그친구의 요청을 흔퀘히 승낙했죠. 그런데, 그 친구가 요청한 프로그램은 그다지 평범한 프로그램이 아니였습니다. 그 친구의 반에 30 명의 학생들이 있는데 각 학생들의 성적들을 입력받아서 평균 보다 낮은 사람들의 번호 옆에 ’불합격’, 평..

C language(c언어) 2024.10.01

형 변환(타입 캐스팅) IEEE754 -2 (돌아왔구나 c식아)

안녕하세요 여러분. 사실 제가 블로그를 쓰게 된 가장 큰 동기가 c언어 공부를 위해 공부한 내용을 정리도 하고, 저처럼 초보자들과 공유하면 좋겠다라는 생각으로 작성을 했는데, 이 c언어를 너무 놓고 살았습니다 ㅠㅠ 이제 다시 시작해보려 합니다!기다려주신분들(기다렸다고 해라) 감사합니다! 자 지난글에서 이어서 형 변환에 대해서 알아보겠습니다! 지난글에서는 소수의 10진법, 2진법을 변환하는 수학적 과정을 살펴보았습니다. 오늘은 IEEE745 방식으로 소수를 저장하는 방법에 대해서 알아보겠습니다.(IEEE754가 뭔지 궁금하시면 https://computerchild.tistory.com/8 ) 부호 bit에는 0 이상이면 0으로 표시하고, 0 이하면 1로 할당합니다. -118.625는 부호bit가 1이겠죠..

C language(c언어) 2024.09.30

형 변환(타입 캐스팅) -1

좀 빠르게 돌아왔습니다. 이제 일주일에 2번 정도 업로드 목표로 열심히 해보겠습니다! 바로 시작하겠습니다! 이 C language에는 여러가지에 형(type)이 존재합니다. 예를들면 int, char, float, double등이 존재하죠. 그런데 이게 코드를 짜다보면 형이 다른 변수 끼리 대입을 해야하는 연산이 필요로 할 때가 있습니다. 예를 들면 double형 변수의 값을 int형에 대입시키는 등에 경우가 있을 수 있습니다. 하지만 이놈의 C놈은(언어) 형이 다른 변수 끼리의 대입이나 연산들이 모두 불법입니다. 우선 예시를 한번 보시죠 figure.1입니다. 성공적으로 컴파일 한다면 결과는 2가 나올 것입니다. 하지만 에러가 없이 출력되었다고 해서 아무일도 없는것은 아니죠. 아마도 Output에 다음..

C language(c언어) 2024.02.01

Switch문

안녕하십니까 저의 블로그 구독자여러분들 (실제 있는지는 모름) 정말 너무 오랜만에 뵙습니다. 마지막으로 올린게 작년 11월이니... 시험기간도 겹치고 연말이라 모임도 많고(평소에나 좀 봐야되는데) 아무튼 다시 열심히 올리도록 하겠습니다. 잡설은 그만하고 바로 공부 시작하겠습니다. 오늘 배울 내용은 Switch문 입니다. if문의 베스트 프렌드인 switch문(음?)에 대해 배워봅시다. 베스트 프렌드인 이유는 switch문의 하는 일이 if문과 매우 비슷하기 때문입니다(아하!) 아래의 간단한 강아지 시뮬레이션 figure.1을 보면서 설명하겠습니다. 성공적으로 컴파일 하였다면 figure.2같은 결과를 볼 수 있습니다. 이처럼 3가지 명령에 대해 반응하고 3가지 명령 외에 명령은 "무슨 명령인지 못 알아 ..

C language(c언어) 2024.01.29

Loop 반복문 (while문) (do-while문)

오랜만에 글을 작성합니다. 지난달에 시험기간도 겹치도 프로젝트 하는거도 너무 바빠서... 지난번에 이어 Loop 반복문중 하나인 while문과 do-while문에 대해 오늘은 공부를 해보도록 하겠습니다. (같이 공부하는 겁니다. 사실 저도 잘 모름) while문은 for문과 비스므리 합니다(저자의 발언 발췌) figure.1을 보면 for문과 유사하면서 for문보다 단순합니다. while문의 기본 구조는 figure.2와 같습니다. for문처럼 조건식에는 반복문이 언제 끝날지에 대한 조건이 들어갑니다. figure.1에서는 i가 100보다 작거나 같을때까지 반복문을 돌린다라는게 조건이죠. 위 경우 i의 값을 계속 검사하여 100 이하인지 확인하고, sum에다가 i를 더하고 i의 값을 증가 시키고,. 이 ..

C language(c언어) 2023.11.03

Number and Digit (수와 숫자) 십진법,이진법,16진법

저는 컴퓨터 과학을 처음 접하면서(문과 출신임) 제일 짜증 나고 낯설었던 것이 바로 어쩔 수 없이 접하게 되는 수학적 지식입니다. 너무 오래전에 수학이란 것을 배운 이후 다시 공부하려니 너무 힘들더라고요. 저와 같은 분들이 많으시리라 생각합니다(제발) 이번 자료가 많은 도움이 되기를 바랍니다. Number와 Digit의 차이는 수는 어떠한 물질의 양을 나타내는 단위이고, 숫자는 이를 기록할 수 있도록 시각화 한 것이다. 예를 들어 사과 100개가 있다면 이를 100개 그리는 거보다 '사과 100개'라 표현하는 것이 훨씬 간단하겠죠. 물론 100을 표현하는 방법은 이외에도 많습니다. 0과 1로도 표현할 수 있지요(이진수) 이렇게 수를 표현하는 방법을 기수법(Numeral system)이라 합니다. 밑과 지..

C language(c언어) 2023.09.01

C language(c언어) comment(주석 처리)

안녕하세요. 오늘은 주석처리에 대해서 배워보도록 하겠습니다. 일반적으로 프로그래밍을 하다 보면 소스코드가 어마어마하게 길어질 수가 있습니다. window의 경우 4,000만 줄 이상 된다고 하니(스읍... 너무 많네) 이렇게 엄청나게 긴 코드를 작성하다보면 각 코드의 필요성, 역할등을 소스 코드 내에 나타내야 할 필요성이 있습니다(일반적으로 4,000만 줄 이상 코드를 사람 1명이 다 작성하지는 않으니까 개발자 간 커뮤니케이션을 위해, 그리고 개발한 사람도 시간 지나서 보면 생각이 잘 안나는 경우가...) 즉 컴퓨터는 완전히 배제하고 오직 사람의 편의를 위해서 쓰는 것이 comment 입니다. C language에서 comment를 사용하는 방법은 2가지입니다. comment는 꼭 필요한 것이지만, 사용..

C language(c언어) 2023.08.31

Loop 반복문 (for)

어느 언어든 가장 중요한 Loop에 대하여 공부하는 시간이다. 다른 언어로도 몇번 접해보았지만, C언어로 접해보기는 처음이다. 우리 같이 공부해보도록 하자. Loop문에 필요성을 책에서는 바로 알려주고 있다. 이후 갑자기 1부터 10,000까지의 숫자의 합을 계산해 달라고 하니, Psi는 친구를 잘못만난거 같다. 컴퓨터의 탄생 이유는 여러가지가 있겠지만, 그 중 제일 중요한 이유는 바로 계산(computing)이다. 최초의 컴퓨터라고 알려진 ENIAC은 탄도의 발사표를 계산하는 역할을 위해 개발되었다. 첫째는 계산이면 두번째 이유는 바로 노가다(즉 반복연산)을 위한것이다. 인간에게 저러한 노가다성 작업을 시키면 일단 험한말이 먼저 나갈것이나, 컴퓨터는 그러지 않다. 묵묵히 명령된 값에 대해 계산을 실행 ..

C language(c언어) 2023.08.31
728x90
반응형