#변수
(변수에 저장된)데이터는 저장되어야만 다음에 사용할 수 있다.
#자료형
자료형 |
||||||
정수형 |
부동 소수점형 |
문자형 |
||||
short | 2byte | -32768~32767 | float | 4byte | char | 1byte |
int | 4byte | 21억쯤 | double | 8byte | ||
long | 4byte | 21억쯤 | long double | 8byte | ||
long long | 8byte |
(2byte = 16bit, 4byte = 32bit, 8byte = 64bit)
#sizeof()
: 변수나 데이터타입의 크기를 바이트 단위로 반환한다.
sizeof(x) // 변수
sizeof(10) // 값
sizeof(int) // 자료형
sizeof(double) // 자료형
printf("변수 x의 크기 : %d\n", sizeof(x));
printf("char형의 크기 : %d\n", sizeof(char));
printf("int형의 크기 : %d\n", sizeof(int));
printf("long형의 크기 : %d\n", sizeof(long));
#unsigned 수식자
unsigned : 부호를 갖는 값인 signed과 달리 음수가 아닌 값만 나타낸다.
unsigned int에서 int는 생략 가능하다.
ex) unsigned int는 0 ~ +42억쯤 (signed int는 -21억 ~ +21억)
#오버플로우
: 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하려고 할 때 발생
오버플로우 <-> 언더플로우
short s_money = SHRT_MAX; // s_money를 최대값으로 초기화한다. 32767
unsigned short u_money = USHRT_MAX; // u_money를 최대값으로 초기화한다. 65535
s_money = s_money + 1; // -32768이 출력됨
u_money = u_money + 1; // 0이 출력됨
#10진법, 8진법, 16진법
- 8진법
012_(8) = 1*8^1 + 2*8^0 = 10
- 16진법
0*A_(16) = 10*16^0 = 10
- 숫자는 기본적으로 int형 10진수?
#기호상수
: 상수를 기호로 표현한 것. 기호상수가 정의된 곳만 상수를 수정하면되서 편리하다.
ex)
3.141592는 PI
area = PI*radius*radius;
0.15는 TAX_RATE
income = salary - TAX_RATE*salary;
#define ~
ex) #define EXCHANGE_RATE 1120 : EXCHANGE_RATE을 1120으로 정의함.
const : 변수가 값을 변경할 수 없게 한다.
ex) const int EXCHANGE_RATE = 1120;
#정수 표현
이진수로 변환해 저장
1. 음수 표현법1
부호비트(0 양수, 1 음수) + 7자리(0 or 1)
> 결과 부정확
2. 음수 표현법2 : 2의 보수로 음수 표현
음수표현법1의 모든 비트 반전 -> 1을 더한다
//2의 보수 프로그램
int main(void)
{
int x = 3;
int y = -3;
printf("x = %08X\n", x); // 8자리의 16진수 출력
printf("y = %08X\n", y);
printf("x+y = %08X\n", x + y);
//x = 00000003
//y = FFFFFFFD
//x + y = 00000000
return 0;
}
#실수 표현 - 부동 소수점
부동 소수점이 고정 소수점 방식보다 범위가 크다.
float : 단일 정밀도 부동 소수점
double : 두배 정밀도 부동 소수점
2e+10은 2*10^10
9.26E3은 9.26*10^3
#문자형
문자도 숫자로 표현되며 아스키 코드를 이용한다.
//문자 변수와 문자 상수
int main(void)
{
char code1 = 'A';
char code2 = 65;
printf("code1 = %c\n", code1);
printf("code1 = %d\n", code1);
printf("code2 = %c\n", code2);
//A 출력
//65 출력
//A 출력
return 0;
}
#제어문자
: 인쇄 목적이 아니라 제어 목적으로 사용되는 문자들 (줄바꿈 문자, 탭 문자, 벨소리 문자, 백스페이스 문자)
int main(void)
{
int id = 1;
int pass = 2;
printf("\a입력된 아이디는 \"%d\"이고 패스워드는 \"%d\"입니다.", id, pass); // 경고음 소리남
return 0;
}
'대학교 > c프로그래밍' 카테고리의 다른 글
C언어_정리_8. 함수 (0) | 2021.12.07 |
---|---|
C언어_정리_9장 함수와 변수 (2) | 2021.11.02 |
C언어_정리_3장 C프로그램 구성요소 (0) | 2021.10.20 |
C언어_정리_2장 프로그래밍 작성 과정 (0) | 2021.10.20 |
C언어_정리_1장 프로그래밍의 개념 (0) | 2021.10.19 |