C/C

2. [C] 변수선언 및 초기화

밍글링글링 2017. 8. 22.
728x90

2. 변수선언 및 초기화

1. C언어의 구조

#include <stdio.h>
int main(void){
    printf("Hello World\n");
    return 0;
}
 

해석 > 

#include <stdio.h> > stdio.h 라는 헤더파일을 include(포함)하겠다는 뜻입니다.(가장 기본적인 겁니다.)

이로 인해서 stdio.h에 들어있는 함수들을 쓸 수 있게됩니다. (예를 들어 printf)

int main(void){} > 메인함수라고 합니다. 가장 먼저 실행이 되는 기본함수인데 앞에 int와 괄호안의 void는 나중에 차차 알게됩니다. 

그리고 중괄호({})를 이용하여 내용을 채워넣습니다.

printf("어쩌구"); > stdio.h 안에 있는 문자출력형 함수입니다. 모든 문장의 끝은 ";"세미 콜론으로 끝이 납니다.

return 0; => 메인함수를 int형으로 만들었기 때문에 0을 반환시켜 프로그램의 종료를 알립니다. (나중에 차차 배웁니다.)

 

2. 변수

변수 > 값을 저장할 수 있는 메모리 공간에 붙여진 이름.

 

<변수 선언 방식>

[type 1]타입형식 변수이름; > int num;[type 2]타입형식 변수이름 = 초기화할 값; > int num = 10;[type 3]타입형식 변수이름1, 변수이름2, ... 변수이름n; > int num1, num2, num3;[type 4]타입형식 변수이름1, = 초기화할값, ...변수이름 n = 초기화할 값 > int num1 = 10, num2 = 20;
<변수이름 규칙>1. 알파벳, 숫자, 언더바(_)로 구성한다.2. C언어는 대소문자를 구분한다.3. 변수의 이름은 숫자로 시작할 수 없고, "키워드"도 변수 이름으로 불가능하다.4. 이름사이의 공백(띄어쓰기)는 불가능하다.

 

키워드란 미리 지정되어 있는 말을 뜻한다.

(ex> return, int, double, float, void ....)

 

3. 초기화

변수에 처음 값을 넣어주는 것이 초기화...

초기화를 하지 않으면 쓰레기값이라는 것이 들어간다.

#include <stdio.h>

int main(void){
    // 변수를 선언합니다.
    int num1, num2;
    // 변수 선언과 동시에 초기화를 각각 시켜줍니다.
    int num3 = 10, num4 = 20;

    // printf를 이용하여 num1,2,3,4를 출력합니다.
    printf("num1 = %d, num2 = %d \n", num1, num2);
    printf("num3 = %d, num4 = %d \n", num3, num4);

    // num1과 num2를 각각 초기화 합니다.
    num1 = 30, num2 = 40;

    // printf를 이용하여 num1,2,3,4를 확인합니다.
    printf("num1 = %d, num2 = %d \n", num1, num2);
    printf("num3 = %d, num4 = %d \n", num3, num4);

    return 0;
}
printf("num1 = %d, num2 = %d \n", num1, num2);

 

 

이 부분의 뜻은 

먼저 우리는 5번째 줄에서 num1, num2를 int형 변수로 선언...

이 int형 변수는 %d를 이용하여 입력 및 출력을 한다.

그래서 %d를 이용해서 num1, num2를 불러온다.

 

빨간색은 빨간색끼리 동일

초록색은 초록색끼리 동일

변수를 선언하면 이 값은 메모리 영역에 저장된다.

%d는 int형이고, 첫번째 %d는 num1, 두번쨰 %d는 num2에 저장된다.

이렇게 에러가 뜨는데 이 예제가 이걸보여드리기 위해서 만들었기때문에 이게 떴다면 잘된겁니다.

(구버전의 VS를 쓰시거나 Dev C++을 쓰신다면 안뜨실 수도 있습니다.)

 

제가 아까 언급했듯 초기화를 하지 않으면 쓰레기값이 저장이 된다고 했었죠?

num1과 num2를 처음에 초기화를 하지 않은 상태(빨간줄 위)에서 출력해버렸기 때문에 이 현상이 일어난겁니다.

그리고 초기화 한 후(빨간줄 아래)에는 잘 나오죠?

 

여기서 알려드릴것이 하나 더 있는데요.

예전까지만 해도 오른쪽 그림처럼 입력을 하면 컴파일이 안되었습니다.

원래 변수선언은 앞에다가 몰아서 해야했었는데 이게 컴파일러가 좋아져서 현재는 저렇게 써도 에러가 안뜨긴합니다.

(바로 C99표준을 수용하게 된 VS 2015를 사용하기 때문이죠.)

그래서 어떤 방법을 사용해도 문제가 되지 않습니다.


 

 

728x90

댓글