( 본 게시글은 작성자가 메모용으로 사용하는 용도임을 밝힙니다. 정보가 불확실할 수 있으니 참고 부탁드립니다 )
변수 : 변하는 수이자 어떤 데이터의 명칭, 사용자가 원하는 크기의 메모리 공간을 만들어 데이터를 집어 넣을 수 있는 공간
변수는 변수 종류 변수 이름 순서; 선언할 수 있고, =을 통해 값을 대입할 수 있다 ( 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를 사용함으로써 메모리 주소값을 출력할 수 있다.
'C > C 정리' 카테고리의 다른 글
배열 및 2차원 배열과 연산자 (0) | 2022.09.02 |
---|---|
별5개부터 역순으로 감소하며 출력하기 예제 (0) | 2022.09.02 |
반복문 for, while문과 배열 (0) | 2022.09.02 |
변수의 종류와 If문,Else문,Switch문 (0) | 2022.09.02 |
변수의 종류와 서식 지정자의 종류 (0) | 2022.09.02 |