본문 바로가기

Basic41

[C언어] 제 10 강 : 메모리 구조와 변수 메모리 구조는 C언어를 공부하는데 아주 중요한 부분을 차지합니다. 포인터나 배열을 다룰때도 이러한 개념이 바탕이 되기때문에 피할 수 없는 부분인거죠... 피할 수 없으면 즐기는것이 자신이 원하고자 하는 바를 이룰 수 있게 하는 필수 요소입니다. 어떤분은 자신이 문제를 풀다가 틀리고, 모르는 부분이 나올때 희열감을 느낀다고 하더랍니다. 자신이 모르고 배워야하는 부분이 아직 남아 있다는 것을 느끼기 때문이라더군요... 존경스럽습니다....ㅠㅠㅠㅠ... 여기서 메모리라고 함은 하드디스크, 램, 레지스터, 캐쉬를 포합니다. 그럼 이러한 모든 메모리를 이해해야되냐구요? 절대 아닙니다. 고맙게도 우리가 사용하는 운영체제는 이러한 메모리들을 통합하여 '가상 메모리'라는 가짜 메모리를 만들어줍니다. 즉, 가상 메모리 .. 2012. 1. 12.
[C언어] 제 9 강 : 문자의 표현 사실 컴퓨터는 바이너리코드 외에는 아무것도 모르는 상태입니다. 우리가 실제로 사용하는 영어나 한글같은 언어는 전혀 모르죠. 내부적으로는 모두 2진법을 사용하여 문자를 표현하는 것 뿐입니다. 오늘은 그러한 컴퓨터의 문자 표현방법을 알아보도록 하겠습니다^-^!! 아스키코드(ASCll)? 사람은 언어를 사용하고 컴퓨터는 숫자를 사용합니다. 컴퓨터가 사람이 사용하는 언어를 사용하기 위해서는 숫자를 언어로 표현해주어야 하는데 이것을 정의한 표준이 아스키코드입니다. 예를들어 '문자 A를 표현할때는 숫자 65를 사용합니다!'라고 아스키 코드에서는 정의하고 있습니다. 아스키코드 문자는 총 128개가 정의되어 있습니다. 컴퓨터는 2진법을 사용하므로 2의 7제곱이면 128이므로 7개의 비트만 있으면 모든 아스키코드를 표현.. 2012. 1. 12.
[C언어] 제 8 강 : 제어문 프로그램의 흐름을 제어해주는 제어문에 대해서 알아보겠습니다. 대표적으로 조건문이나 반복문이 있지요~ 1. if 문 프로그래머가 정의한 조건을 만족시길때만 실행하도록 해주는 함수입니다. 예를들어 '내가 컴퓨터를 가지고 있다' 라는 조건을 만족하면 특정 기능을 수행하고 그렇지 않다면 수행하지 않도록 합니다. int main(void) { int n = 10; if( n>5) { printf("5보다 크다.\n"); } } n이라는 값은 5보다 크므로(n>5) printf문을 수행합니다. 만약 n이 5보다 크지 않다면 printf문은 무시가 되겠죠~? 사실 if문은 else문과 항상 같이 다닙니다. else문은 if문을 만족시키지 않을때 수행됩니다. int main(void) { int n = 1; if( n.. 2012. 1. 11.
[C언어] 제 7 강 : scanf함수 키보드 입력에 사용되는 scanf함수에 대하여 알아보겠습니다. 사실 scanf함수는 배열과 포인터가 바탕이지만 자주 사용되는 함수이므로 미리 배워보도록 하겠습니다. scanf함수는 printf함수와 매우 비슷하면서도 상반된 기능을 제공합니다. scanf("%d", &number); 언뜻보기에도 printf함수와 비슷하죠? 위에 나타난 함수의 이미는 키보드로부터 정수를 입력받아서, 변수 number에 저장하라는 뜻입니다. 단, 여기서 저장할 변수 앞에는 '&'기호를 붙여주는데요, 사실 이 기호는 연산자입니다. 해당 변수의 주소값을 얻게되는거죠... 여기서부터는 나중에 배울 포인터의 개념에 해당하므로 기회가 된다면 나중에 좀 더 자세하게 알아보도록 하겠습니다. 즉, scanf함수는 printf함수와는 달리 .. 2012. 1. 11.