C언어 독학 배열로 문자열 표현하기
C언어 독학 배열로 문자열 표현하기 ■ C언어에서 문자열을 표현할 때는 큰따옴표("")를 이용하는데요. char 배열을 이용해서 문자열을 저장하고 변경할 수 있는데 간단한 코딩을 해보면서 그 과정을 확인해보겠습니다. 먼저 char 배열에 문자열을 저장하겠습니다. ▲ char 배열 str에 길이를 지정하지 않고 문자열을 입력하고 있습니다. 이렇게 길이를 지정하지 않으면 컴파일러가 문자열을 체크한 후 그 길이를 자동으로 지정해주는데요. 1byte의 char의 길이를 확인하기 위해서 sizeof() 연산자를 사용하고 있습니다. 프로그램을 실행하면 다음과 같은 결과가 출력되는데요. ▲ str 배열의 크기는 8byte이군요. 1byte 짜리 데이터가 8개 있다는 소리인데.... 좀 이상합니다. "Hello~!" ..
c언어 배열 초기화 array initialization
c언어 배열 초기화 array initialization ■ 지난 글에서 c언의 배열의 개념과 선언 방법 등을 정리해봤는데요. 이번에는 배열을 선언과 동시에 초기화를 하면서 배열의 몇 가지 특징을 정리해보겠습니다. 먼저 선언과 동시에 초기화하는 방법은 다음과 같습니다. int aaa[3]={1, 2, 3}; 이런 형식인데요. [] 안에 3은 배열의 길이를 의미하고 1, 2, 3이 순서대로 저장됩니다. 이게 c언어 배열 초기화 기본 형식이rh요. 만약 길이를 의미하는 [3]을 입력하지 않은 상태에서 초기화 리스트{}의 값들을 입력하면 컴파일러에 의해서 자동으로 3이라는 길이가 저장됩니다. int bbb[]={1, 2, 3}; 앞에서 정의한 배열과 완벽하게 동일한 형식입니다. 참고하시고요. 다음은 선언한 길..
c언어 배열 선언 array
c언어 배열 선언 array ■ 배열이란 동일한 자료형의 변수를 여러 개 모아놓은 것인데요. 배열을 선언할 때는 이름, 자료형, 길이 정보가 필요하며 형식은 다음과 같습니다. int aaa [3] ◀ 자료형 배열이름 [배열길이] 즉, 배열을 이루는 요소들의 자료형과 배열의 이름 그리고 몇 개의 변수를 모아 놓을 것인지 길이를 지정해주면 됩니다. 위 형식처럼 배열을 선언하면 int형 자료형 세 개를 모아놓은 'aaa'라는 배열을 선언한 것입니다. 이렇게 배열을 선언하면 메모리의 어느 공간에 세 개의 변수가 위치하게 되는데 연속으로 위치하게 됩니다. 예를 들어 첫 번째 변수의 위치가 10억 번지라면 두 번째는 10억1번지 세 번째는 10억 2번지가 되는겁니다. ■ 그래서 아무리 긴 배열이라고 해도 순서대로 ..
c언어 독학 static variable 변수
■ 이번 글에서는 static 변수에 대해서 정리해보려고 하는데요. 그전에 지난 글에서 정리했던 전역변수와 지역변수의 특징을 복습한다는 생각으로 간단하게 정리하고 넘어갈게요. ■ 두 변수의 차이점은 메모리에 할당되는 시간과 소멸하는 시간이 다르고 접근할 수 있는 범위가 달랐습니다. 그중 지역변수는 함수가 실행될 때 메모리에 할당되고 그 함수 내부에서만 접근할 수 있었는데요. 매번 메모리에 할당됐다고 소멸하는 과정이 불필요할 때가 있습니다. 그래서 지역변수도 전역변수처럼 프로그램이 실행되면서 메모리에 할당되고 자동으로 초기화되며 프로그램이 종료될 때 소멸하도록 할 수 있는데요. 지역변수에 static을 붙여 주면 됩니다. 이렇게 하면.... 1. 프로그램 실행과 동시에 메모리에 할당. 2. 접근 범위는 지..
c언어 독학 전역변수의 특징
■ c언어에서 변수는 지역과 전역 variable가 있는데 그 이름에서도 알 수 있듯이 프로그램 전체에서 접근할 수 있는 게 전역변수이고, 함수의 내부(일부 지역)에서만 접근할 수 있는 게 지역변수입니다. 지난 글에서 지역변수에 대해서 정리해봤고, 이번에는 전역변수의 개념을 예제를 통해서 확인해보겠습니다. 이 녀석의 특징은 프로그램이 실행함과 동시에 메모리에 할당돼서 존재하다가 프로그램이 종료될 때 소멸하며 프로그램 내부 어느 지역에서든 접근이 가능합니다. 그리고 값을 초기화하지 않으면 자동으로 "0"이 됩니다. 다음과 같은 간단한 예제를 보겠습니다. ▲ [int x]는 함수의 밖에 선언(전역)했고 [int y]는 함수 내부(지역)에 선언했습니다. 이 둘의 차이점을 확인하기 위해서 둘 다 초기화하지 않은..
c언어 프로그램 다양한 형식의 지역변수
■ 지난 글에서 지역변수의 개념을 정리해봤었는데요. 이번에는 좀 더 다양한 몇 가지 Local Variable에 대해서 알아보겠습니다. 개념 정리하면서 지역변수는 중괄호{}안에 선언되는 변수라고 했습니다. 그런데 이 중괄호는 함수에서만 사용되는 게 아니고 if 문이나 for 문처럼 제어문에서도 사용되는데요. 이런 제어문 안에 선언된 변수도 지역변수입니다. 그래서 괄호 시작 시점에서 메모리에 할당되며 중괄호가 끝날 때(제어문 빠져나오는 시점) 메모리에서 소멸하게 되는데요. 다음 코드를 보겠습니다. ▲ 어떤 값들이 출력될지 대충 예상되는 간단한 for 문인데요. 일단 프로그램을 실행부터 해보겠습니다. ▲ 예상했던 결과가 출력됐나요? for 문은 5번 반복되는 게 맞는데... 왜 계속 x의 값이 '1'이 출력..
c언어 프로그래밍 지역 변수 Local Variable
c언어 프로그래밍 지역 변수 Local Variable ■ c언어에서 변수는 선언되는 위치에 따라서 전역변수와 지역변수로 나눌 수 있는데 쉽게 생각해서 함수 내부에 선언되면 지역변수이고 밖에 선언되면 전역변수라고 생각하면 됩니다. 이번 글에서는 Local Variable가 어디에 위치하며 메모리에 할당되는 시기와 소멸하는 시기, 그리고 이 녀석에게 접근할 수 있는 범위에 대해서도 알아보겠습니다. 먼저 지역변수가 선언되는 위치는 함수의 내부.. 즉 중괄호 {} 안쪽입니다. int aaa(void){ int x=10; // 중괄호 {} 안에 있기 때문에 지역변수 } 이렇게 함수 내부에 선언되며.... 이 함수가 실행되면서 "{" 부분을 지나면서 변수를 만나게 될 때 메모리상에 x 변수가 할당됩니다. 그리고 ..
c언어 프로그래밍 함수의 위치
c언어 프로그래밍 함수의 위치 ■ 프로그램은 위에서 아래로 왼쪽에서 오른쪽으로 실행되는 게 기본인데요. 일반적으로 호출할 함수도 앞쪽에 만들어져 있어야 컴파일러가 위쪽에서 먼저 읽고 오기 때문에 나중에 그 함수를 호출해도 앞에서 본 녀석이라고 인식하고 문제 없이 불러오게 되는데요. 다음과 같은 형식입니다. ▲ 두 수를 전달받아서 더한 후 그 값을 출력하는 hap() 함수를 정의하고 main() 에서 hap()을 호출하고 있는데요. hap()이 앞쪽에 있기 때문에 당연히 아무 문제없이 제대로 실행되는 프로그램입니다. 하지만 반대로 main()이 먼저 정의되고 hap()이 나중에 정의된다면 어떻게 될까요? 바꿔서 컴파일 해보겠습니다. ▲ 이렇게 main()이 먼저 오고 호출할 hap()이 뒤쪽에 위치하게 되..
c언어 프로그램 return 문의 역할
c언어 프로그램 return 문의 역할 ■ '돌아오다'라는 의미의 return을 c언어에서도 사용하는데요. 이 return 문에 대해서 간단하게 정리해볼까 합니다. return은 함수의 끝에 입력돼서... 해당 함수를 호출한 곳으로 데이터를 반환하는 역할을 하고 또 하나의 기능은 함수의 종료를 알리는 역할을 합니다. 먼저 값을 반환하는 예제를 하나 살펴보겠습니다. ▲ 예제의 내용은 반환되는 자료형이 int형인 hap() 함수를 만들었구요. 매개변수로 x, y를 받아서 각각 a와 b 변수에 저장한 후 그 값을 더해서 반환하고 있는 형식입니다. 이때 retrun c;에서 c는 반드시 반환되는 자료형과 같은 int형 이어야 합니다. main() 함수에서는 hap() 함수를 호출하면서 10과 20의 인자를 전달..
C언어 프로그램 함수 만들기
C언어 프로그램 함수 만들기 ■ 지난 글에서 전달인자와 return 값을 모두 갖고 있는 형식의 함수를 만들어 봤는데요. 이번에는 전달인자와 리턴 값이 있는 것과 없는 형식의 함수들을 알아보겠습니다. 리턴 값이 없거나 매개변수가 없는 함수는 반환값의 자료형이나 매개변수 자리에 void로 선언해주면 되는데요. 리턴값이 없는 형식은 다음과 같습니다. void 함수이름(매개변수){ 실행코드; } ▲ 이렇게 반환되는 형식에 void를 입력하면 값을 되돌려주지 않는다는 의미이고... 함수의 끝에 return 값을 입력하지 않아도 됩니다. 다음은 return 값은 있는데 매개변수가 없는 형식입니다. int 함수이름 (void) { 실행코드; return int 자료형; } ▲ 역시 매개변수 자리에 void를 입력해..
C언어 독학 함수 만들기 function return
C언어 독학 함수 만들기 function return ■ 지난 글에서 C언어 함수의 개념을 정리해봤는데요. 함수는 '전달 인자'와 '반환 값'의 유무에 따라서 네 가지로 구분할 수 있습니다. 이번 글에서는 첫 번째로 전달인자와 반환값이 모두 있는 일반적인 함수를 만들어보겠습니다. 예제는 전달된 인자를 더해서 그 값을 반환하는 형태의 함수인데요. 다음과 같은 특징으로 만들겠습니다. 전달되는 인자는 int 형으로 두 개이며 함수의 이름은 Hap이고 실행후 반환되는 값도 int형입니다. 위의 형태를 참고해서 함수를 만들면 다음과 같은 형식이 될것입니다. int Hap(int su1, int su2){ int res=su1+su2; return res; } ■ 함수의 매개변수 int su1과 su2를 선언해서 ..
C언어 함수 function
C언어 함수 function ■ 대부분의 프로그램은 시작하는 위치가 있고 그곳을 main이라는 이름으로 표시한다. c언어 역시 main()이라는 함수가 있고, 그 함수의 시작점({)에서 프로그램이 시작되며 빠져나오면서(}) 프로그램은 종료된다. 즉, 어떤 코드를 실행하기 위해서는 main()이라는 함수안에 위치해야 한다. 하지만 엄청나게 많은 내용을 모두 main()안에 작성하는 것은 무리가 있기 때문에 여러 개의 함수를 만들어 놓고... main()에서는 그 녀석들을 호출해서 사용하기만 하면 된다. 즉, 함수란 매인 함수가 해야 할 일들을 분담하는 정도로 이해하면 될것같다. C언어 함수의 기본 형식은 다음과 같다. int[반환되는 자료형] main[함수이름] (void)[전달 인자]{ 실행코드; } ■..
C언어 기초 삼항연산자
C언어 기초 삼항연산자 ■ 피연산자 세 개를 이용해서 조건 연산자를 구성할 수 있는데 이를 삼 항 연산자라고 하며, 형식은 다음과 같습니다. (A) ? B : C 세 개의 피 연산자 중에서 먼저 A가 참인지 거짓인지를 따지고 참이면 B가 반환되고 A가 거짓이라면 C가 반환되는 형태입니다. 즉 A는 조건식이며 B와 C는 반환될 데이터 값입니다. 되돌아오는 값이 있기 때문에 다음과 같이 저장할 변수를 선언하고 이 연산자를 이용하면 되겠죠? int aaa= (su1 > su2) ? su1 : su2; su1과 su2 중에서 su1이 크다면 그 값을 반환하고 그렇지 않으면 su2를 반환해서 aaa라는 int형 변수에 저장하고 있는 모습입니다. 이 형식대로 예제를 만들어서 실행해볼게요. ▲ 예제의 내용은 int형..
c언어 if문
c언어 if문 ■ 모든 프로그램은 위에서 아래로... 그리고 왼쪽에서 오른쪽으로 코드를 읽어서 실행하는 게 일반적인 흐름인데요. 프로그램의 유연성을 위해서는 이 흐름을 변경해야 할 필요성이 있고 그런 기능을 하는 몇 가지 제어문이 있습니다. 이번 글에서는 그 중 if문에 대해서 정리하도록 하겠습니다. if(만약 ~라면) 뜻에서 알 수 있듯이 조건이 참이라면 그 내용을 실행하고 그렇지 않으면 내용을 뛰어넘어서 다음 코드로 이동하라는 의미인데요. if문의 형식은 다음과 같습니다. if(참 또는 거짓의 조건){ 내용부; } 예제를 보면서 정리해보겠습니다. ▲ int형 x변수를 선언하고 0~9 사이의 숫자를 입력받아서 저장하고 있습니다. 그리고 입력받은 x의 값이 5보다 크고 작음에 따라서 출력되는 문장이 다르..
c언어 기초 for문
c언어 기초 for문 ■ c언어 반복문 중에서 가장 많이 사용하는 것이 for문인데요. 이번 글에서는 그 형식과 실행되는 순서를 알아보고 간단한 예제도 하나 만들어보겠습니다. 먼저 반복문을 실행하기 위해서는 기초가 될 '초기식'과 반복 조건을 검사할 '조건식' 그리고 반복문을 끝내기 위해서 조건식을 거짓으로 만들 '증감 연산'이 있어야 하는데요. 형식은 다음과 같습니다. int i; (변수 선언) for(1.초기식; 2.조건식; 4.증감식){ 3. 반복 실행할 코드; }; ■ 반복 실행되는 흐름의 순서는 1 >2 >3 > 4의 순서로 진행됩니다. 이때 초기식은 처음 시작할 때 한 번만 실행되며, 조건식 매회 반복을 하기 전에 [참/거짓]을 따져서 반복할지 여부를 결정하며, 증감식은 반복 한 후 실행됩니다..
c언어 독학 do~while
c언어 독학 do~while ■ 지난 글에서 while문에 대해서 정리해봤는데요. while문은 앞쪽에서 조건문을 검사해서 참이면 실행하고 거짓이면 실행하지 않는 형식인데요. 이번 글에서 알아볼 do~while문은 조건을 뒤쪽에서 검사한다는 차이점이 있습니다. 그렇기 때문에 최초 한 번은 무조건 실행하게 되며 형식은 다음과 같습니다. do{ 실행할 코드; }while(조건문); 예제를 만들어서 확인해보겠습니다. ▲ 앞에서 알아본 형식대로 먼저 printf() 함수가 실행되고 문자열이 출력될 것입니다. 그리고 while문과 마찬가지로 반복문을 빠져나올 수 있도록 x++; 연산문을 입력하고 있습니다. 프로그램이 실행되면 x=0으로 초기화하고 printf()를 실행된 후 x를 증가시켜서 x=1이 됩니다. 다음..