( 본 게시글은 작성자가 메모용으로 사용하는 용도임을 밝힙니다. 정보가 불확실할 수 있으니 참고 부탁드립니다 )

 

변수 : 변하는 수이자 어떤 데이터의 명칭, 사용자가 원하는 크기의 메모리 공간을 만들어 데이터를 집어 넣을 수 있는 공간

변수는 변수 종류 변수 이름 순서; 선언할 수 있고, =을 통해 값을 대입할 수 있다 ( ex. int a = 10; )

변수를 선언할때 주의 사항으로는 다음과 같다.

 

1. 변수명에는 특수문자, 공백문자를 사용할 수 없다.

2. 영문자, 숫자, 언더(_)는 사용 가능하지만, 숫자가 변수명 앞에 올 수없다 ( ex. apple, apple1 가능, 1apple 안됨 )

3. 대문자, 소문자는 구분되어진다. Apple, apple은 다른 변수명으로 취급된다.

4. 키워드/예약어는 변수명으로써 사용할 수 없다.

5. 변수명은 사용 의도와 맞게 사용하는 것이 좋다.

( 다른 사람이 봐도 어떤 의도인지 알 수 있게 정의 )

 

변수 선언을 할때는 반드시 초기화 시켜줘야 한다. 그렇지 않으면 해당 변수 공간에는 의미 없는 쓰레기값이 되기 때문이다.

 

============================================================================

 

위의 변수 선언에서 int는 정수 자료형 ( type )으로써 4byte, 32bit의 크기를 가진다.

자료형에는 정수, 실수, 문자형 등등이 있다.

자료형의 종류로는 다음과 같다. ( 크기 범위 )

 

정수 자료형

char : 1byte, 8bit ( -128 ~ 127, 문자 자료형으로도 사용함 )

short : 2byte, 16bit ( -32,768 ~ 32,767 )

int : 4byte, 32bit ( - 2,147,483,648 ~ 2,147,483,647 )

long, long int : 4byte, 32bit ( int 생략가능, - 2,147,483,648 ~ 2,147,483,647 )

long long : 8byte, 64bit ( -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 )

 

실수 자료형

float : 4byte, 32bit ( 1.175494e-38 ~ 3.402823e+38 )

double : 8byte, 64bit ( 2.225074e-308 ~ 1.797693e+308 )

 

또한 정수 자료형 앞에 unsigned를 붙이면 양수만을 표현할 수 있고, 크기는 양수로 2배가 된다. ( ex. unsigned int는 0 ~ 4,294,967,295 )

 

수업 중 컴파일러로 출력했던 것처럼 int a = 10; 으로 선언을 하고, printf("%d\n", a);로 출력을 하면 10이 출력된다.

여기서 int의 범위는 - 2,147,483,648 ~ 2,147,483,647 으로 해당 범위 안의 정수가 출력 가능하고, 만약 해당 범위를 넘는다면 오버플로우, 언더플로우가 일어난다.

실수 자료형 float는 값을 대입할때 숫자뒤에 f를 붙인다. ( ex. float f = 3.14f; , 3.140000 출력됨 )

추가로 \n, \t는 이스케이프 문자로써, 특별한 문자를 입력하기위에 백슬래시를 앞에 붙이는 문자이다.

\n는 다음 줄로 넘어가는 개행 문자이며, \t는 탭을 하게 해주는 탭 문자이다.

 

============================================================================

 

수업 중 변수 선언을 하면서 %d, %f, %c 등을 사용했는데, 이것을 서식 지정자라고 한다.

각각 decimal ( 10진수 ), float, character 의 약자이고, 각자 약속된 방법으로 해석하여 출력한다.

%d, %f, %c는 각각 정수, 실수, 문자를 출력할때 사용하는 서식 지정자이다.

특이하게 여기서 실수를 표현할때 사용하는 %f에 0.2, 0.3을 붙이면 소수점 몇자리까지 출력할지 조절할 수 있다. ( ex. float f = 3.14f;, printf("%0.2f\n", f);는 3.14로 출력된다. )

 

============================================================================

 

scanf 함수를 통해 입력 값을 변수에 저장하여 바로 출력할 수 있다.

 

printf("숫자를 입력해주세요 : ");

 

scanf("%d", &a);

 

printf("입력하신 숫자는 %d 입니다. \n", a);

 

와 같이 입력하면 숫자에 원하는 정수를 입력하면 해당 정수가 출력된다.

scanf 함수를 사용할때는 변수 앞에 &을 붙임으로써 변수의 메모리 주소를 넣을 수 있다. 그래야 원하는 정수를 입력 후 주소를 찾음으로써 주소에 저장되어 있는 값을 출력할 수 있기 때문이다.

scanf 함수는 사용할때 보안에 취약한 문제로 사용하지 말라는 경고가 뜨면서, 컴파일 에러가 발생하는걸 확인할 수 있다. ( 수업에서는 cpp파일 속성에서 SDL검사 여부를 조절하여 출력함 )

또한 이 과정에서도 서식 지정자 %p를 사용함으로써 메모리 주소값을 출력할 수 있다.

 

+ Recent posts