ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C/C++] 상수 / 변수 / 변수타입
    기초/C,C++ 2017. 2. 13. 09:38

    리터널 상수

    고정된 값(값변경 x)

    메모리에서 계속 값을 가져올 수 없음 

    ex)

    10, A, 가나다..

     

     그럼 상수는 메모리에서 값만 읽어올수 없을까?

    →따라서 상수도 이름을 붙여서 사용할 수 있다.

     

    상수

    [사용목적]

    코딩을 더 간결하게 하기위해

     

    [사용법]

    #1. 매크로(#define)

    #define으로 상수를 정의할 때는 무조건 한줄로 작성해주시고

    main함수 위에다가 선언해주셔야 합니다.

     이유는 #define예약어는 컴파일하기전 프리프로세서를 통해 치환됩니다.

     

    #2. 예약어(const)

    매크로와 달리 메모리에 할당되어 컴파일에서 처리됩니다.

    따라서 const명령어를 사용하시는게 더 좋을 것같습니다.

     

    변수이름과 헷갈릴 수 있기때문에 상수는 대문자로 정의해주시는게 좋습니다.

     

     

     

     

    변수

    지정된 이름안에 변할 수 있는 값

     x = 10;

    y = 20;

    ....

     

    변수

    프로그래밍을 하기 위해선 내가 원하는 값을 CPU메모리에 공간에 저장해야 합니다.

    저장을 하지 않는다면 일일이 프로그래밍을 수동적으로 값(상수)을 입력해서 사용하겠죠.

    그렇게 만들어진 프로그램은 수시로 변하는 유지보수 과정에서 관리가

    힘들어 집니다.

    따라서 변수를 메모리에 저장 후 저장 된 값을 불러오는 식으로 사용하는 방법을 변수 선언방법입니다.

     

     

    변수 선언

     

    변수이름도 마음대로 지을 수 있는게 아닌데요

    변수이름에는 몇가지 제한 사항사항이 있습니다

     

    1. 변수의 이름은 알파벳, 숫자, 언더바(_)로 만든다.

    그 이외의 문자는 안됩니다.

    그러나 변수 첫번째 자리는 숫자는 불가능합니다.

     

    test_1 (o)

    1_test (x)

     

     

    2. C언어는 대소문자를 구분한다.

    문자는 ASCII코드표에도 나왔듯이 a와 A는 다른 값입니다.

     

    3. 키워드는 불가능합니다.

    int int(x)

     

    4. 공백은 불가능합니다.

    int t e s t(x)

     

    6. #특수문자는 불가능하다.

    #이 붙으면 전처리기로 처리되기떄문에 불가능합니다.

     

    Visual Studio 2013, 2015부터 변수의 이름은 한글로 해도 된다더군요..

    하지만 변수의 이름은 되도록 영어로 ! 또한 용도에 맞게 사용하는 것이

    바람직한 프로그래밍이라고 할 수 있습니다!

    ex) 정수 : num

    문자열 : str

     

    [초기화]

    변수가 처음 선언되면 변수 값에는 쓰레기 값(임의의 값)이 들어가있기 때문에 변수에 처음 값을 넣어주는 작업초기화라고 합니다.

    변수에 값을 넣을 때는 대입연산자 "="를 사용합니다.

     

    ex) char c = 'a';

    int i = 7;

    double PI;

    PI = 3.14;

     

     

    원래는 변수선언을 컴파일 맨 윗부분에 작성했었는데

    요즘 버젼은 중간중간에 변수를 선언해도 되더라구요.

    하지만! 중간중간에 선언보다 변수를 선언해서 정리해두면 찾기 편합니다.

    프로그램은 작성자 마음대로 이기때문에 편하신대로 하셔도 되지만,

    나중에 큰 프로젝트때 변수 찾는 수고를 덜으시려면 ....

    연습도 잘해야된다고 생각합니다^^

     

    #변수 크기(메모리 공간 확인)

    sizeof();

    [변수 타입]

     데이터 타입

     크기(byte)

    범위 

    문자

    unsigned char

    1

    0~255

    char

    1

    -128~127

    정수

    unsigned short

    2

    0~65,535

    unsigned int(long)

    4

    0~4,294,967,295

    short

    2

    -32,768~32,768

    int(long)

    4

    -2,147,483,648~2,147,483,647

    실수

    float

    4

    ±3.4x10(-37승)~±3.4x10(38승)

    double

    8

    ±1.7x10(-307승)~±1.7x10(308승)

    long double

    8 그 이상

    차이를 많이 보임

     

    int < long int < float < double < long double

    변수

     

    가장 기본이 되는 것은 int형

    C에서 가장 빠르고 효율적으로 연산이 가능한 자료형

    CPU에 따라서 크기는 달라집니다.

    16bit → 2byte → short

    32bit → 4byte

    64bit → 8byte

     

    →완벽한 8byte크기를 보려면 컴파일성능, OS, 하드웨어 3가지가 만족되어야 8byte로 표시

     

    →소수점 자리가 많아질 수록 소수점 계산의 오차가 줄어들기에

    double을 많이 사용합니다

     

    이해하기 힘드신분들은 정수는 int, 실수는 double !이라고 외우시는게 좋을것 같네요!

     

    unsigned 키워드를 변수타입 앞에 붙이면

    양수의 값의 범위를 음수의 범위만큼 더 늘려줍니다.

     

     

    댓글

Designed by Tistory.