본문 바로가기

c

(48)
[C언어 강좌] #16 - 문자와 아스키코드 , 16진수 문자열을 저장하는값은 저번에 자료형에 대해서 배울때도 봤듯이 char 입니다.근데 컴퓨터에서는 모든것을 0과 1로 저장하면서 어떻게 문자를 저장할수 있을까요? 그건 바로 숫자마다 어떤 문자인지 정해져있기 때문입니다.문자마다 번호를 정해놓고 사용하는것이죠.c 변수에 'a'라는 문자를 넣고 서식문자 %c로 출력하면 문자로 출력되지만 %d를 통해 정수로 출력해주면 97이 나옵니다. 물론 거꾸로도 가능합니다. 'a'대신 97을 넣어봐도 똑같은 결과가 나왔습니다.97을 넣든 'a'를 넣든 똑같은 의미입니다. 아까 말했듯이 문자마다 특별한 번호가 붙어있습니다.a의 번호는 97번이라는 뜻이 되겠죠. 그 문자의 정해진 번호를 아스키코드라고 합니다. 이것은 그 번호를 정리해놓은 표입니다.참고로 HEX는 16진수입니다. ..
[C언어 강좌] #15 - 다차원 배열 저번에 배열에 대해 배워봤으니 이번엔 다차원배열에 대해 배워봅시다.2차원 배열 이상의 배열을 다차원배열이라고 하는데요. 2차원 이상의 배열은 배열 뒤에 한번더 배열을 넣는식으로 만들수있습니다.배열마다 배열이 있는 느낌이라고 보면 됩니다. 우리가 보통 아는 1차원은 선이고 2차원은 면이고 3차원이 입체적인 도형이되죠.1배열도 비슷하게 받아들일수 있습니다. 우리가 아는 1차원이 선이고 2차원이 면인것처럼 배열도 1차원은 선이고 2차원은 면이됐습니다.배열의 크기가 [5], [5]일경우 5x5크기의 배열이 만들어지게됩니다. 3차원배열은 한단계 더나가서 저 면이 여러개 쌓이겠죠.이렇게요 (그림을 못그려서 죄송합니다..) 그리고 실제로 메모리에 저런식으로 저장되는건 아니고 일자형태로 저장됩니다.순서대로 주소값이 증..
[C언어 강좌] #14 - 배열 이번에는 배열을 배워보겠습니다. 이런 코드가 있을때 변수를 하나하나 선언하기는 힘듭니다.사람 100명이 있는데 100명마다 변수를 하나씩 선언하는건 그야말로 노가다겠죠. 하지만 배열을 이용하면 한번에 선언할수 있습니다. 이런식으로 변수이름뒤에 [길이]를 적어주는겁니다.저 코드는 100개의 int형 변수를 선언하게 되는겁니다. 그리고 배열변수는 위와같이 초기화할수 있습니다. 그리고 위와같이 연산하거나 참조할수도 있습니다. abc[3]을 배열에 4번째에 있는 변수에 해당합니다.abc[3]인데 왜 4번째일까요?그건 배열이 0부터 시작하기때문입니다. abc[0] , abc[1],. abc[2] .... abc[9]로 0부터 순서대로 있습니다. 길이가 10 이상으로 길어질경우 오류가나는걸 볼수있습니다. 배열이 0..
[C언어 강좌] #13 - 지역변수 안녕하세요. 이번에는 변수의 생존 기간에 대해서 알아봅시다. ???? 변수의 생존기간이라니.. 변수도 죽나요?? 네. 죽습니다.변수에는 지역이 있습니다. 그 지역이 사라져버리면 그곳에 있던 변수도 죽어버립니다. 그럼 지역이 대체 어디일까요? 바로 블록입니다.if문이나 반복문을 할때 블록으로 문장을 묶어줬었죠?그리고 기본으로 main함수를 선언할때도 블록이 한번 열렸습니다. int a가 있는곳을 A지역이라고 하고 int b가 있는곳을 b지역이라고 하겠습니다.{ }로 둘러쌓인곳이 하나의 지역입니다. 지역 B는 지역 A속에 포함되어있습니다. 즉 지역 A에 있는 변수는 지역 B에서도 쓸수 있습니다.하지만 지역 B가 아닌곳에서는 지역 B에있는 변수를 사용하지 못합니다. 코드로 예를들어서 설명해드리겠습니다. 지역B..
[C언어 강좌] #12 - switch문 안녕하세요. switch문을 배워볼건데요. switch문을 보기전에 if - else문을 잠깐 다시 봅시다. #include int main(void) {int num = 20;if(num == 10) {printf("10입니다.");} else if(num == 20) {printf("20입니다.");} else if(num == 30) {printf("30입니다.");} else {printf("원하는 값이 아닙니다..");}} 출력결과 : 20입니다. if 와 else를 이용해서 값을 비교해보면서 같은값일경우 출력시키도록 했습니다. 하지만 이걸 switch문으로 작성할수도 있습니다. #include int main(void) {int num = 20;switch(num) {case 10: print..
[C언어 강좌] #11 - 반복문 for 안녕하세요. 오늘은 반복문 for를 배워보겠습니다. 저번에 while을 배워봤었죠? while(A)에서 A가 참일경우 계속 반복됐었습니다. while로 변수를 늘려가면서 원하는만큼 반복하는방법이 있었죠. int i = 0;while(i < 10) {printf("안녕\n");i++;} 이런방법으로 안녕을 10번 출력시킬수 있었습니다.우선 변수 i를 초기화하고 i가 10보다 작은지 체크한다음 안녕을 출력하고 i를 1만큼 증가시켰습니다. 근데 이것을 바로 하나로 묶어버릴수 있는게 for문입니다. for문의 기본적인 형태는 다음과 같습니다. for(초기화;조건체크;업데이트) 우선 초깃값을 정해준후 조건을 체크하며 값을 업데이트해줍니다.조건이 맞지 않을경우 for문은 끝나게됩니다. 한번 예제를 보면서 배워보죠...
[C언어 강좌] #10 - 반복문 while 안녕하세요. 반복문을 배워봅시다. 반복문은 말그대로 코드를 반복시킬수 있습니다.c언어의 반복문으로는 for, while, do while문이 있습니다.오늘은 그중 while과 do while을 배워보겠습니다. while문은 if의 반복형이라고 생각하시면 됩니다. while(true) {printf("안녕");} 참일경우 코드를 실행한다는점은 if문과 다를게 없습니다.하지만 while은 조건이 거짓이 될때까지 계속해서 코드를 반복시킵니다.즉 위와같은 코드를 작성하면 무한루프에 빠지게 되는겁니다. (얀데레) 그리고 이 반복문을 탈출할수 있는것도 존재합니다. 바로 break입니다.반복문을 부숴버린다는 의미죠. int형타입의 변수 i 를 만들고 0을 저장시켜둡니다.그리고 반복문에서 i를 계속해서 더해준후 i가 ..
[C언어 강좌] #9 - 번외:가독성 올리기(주석과 들여쓰기) 안녕하세요. 이번편은 번외편입니다. 이것을 몰라도 문법 배우는데는 지장 없습니다. 단. 프로그래밍을 하다보면 코드를 다른 프로그래머에게 보여줘야 할때가 올겁니다.아니면 혼자 하더라도 규모가 큰 프로그램을 만들다보면 코드가 복잡해질겁니다. 그래서 주석과 들여쓰기를 필수적으로 해줘야합니다.안해줘도 물론 프로그램이 실행하는데는 전혀 지장 없습니다. 주석이란건 제가 가끔 코드에 설명을 넣어둘때가 있죠. 이렇게 뒤에 코드 설명을 붙일수 있습니다.문자열을 제외한곳에서 // 뒤에 글자를 넣으면 모두 주석이됩니다. 근데 주석을 5~6줄 아니면 몇십줄 몇백줄 작성해야될수도 있습니다.근데 모두 앞에 //를 붙여준다? 그냥 노가다지요한번에 몇백줄을 주석으로 바꿔버릴수 있는방법도 있습니다. 이렇게 시작하는부분에 /*를 넣어주..