변수 이름, 함수 이름
식별자 구성: 대소문자 알파벳, 숫자, 밑줄(_)
int main(void){
int snum, credits;
snum=2015114835; // 적절한 식별자 사용
credits=18;
printf("학번: %d\n", snum);
printf("신청학점: %d\n", credits);
return 0;
}
⇒ 변수 선언과 변수 초기화는 좀 다름
int main(void){
int math = 99;
int korean = 90; //이 2개는 0변수 선언 & 변수 초기화 (초기값 설정)
int science; // 단순 변수 선언
return 0;
}
응용:
#include <stdio.h>
int main(){
int num1=30,num2=14;
int difference;
difference = num1-num2;
printf("num1 - num2 = %d\n", difference);
return 0;
}
int main(){
int a=30,b=43;
int sum;
sum = a+b;
double x=38.232, y=45.232;
double difference;
difference = x-y;
printf("합: %d\n", sum);
printf("합: %f\n", difference); // %f는 실수 출력할 때 사용
return 0;
}
[ 기본 자료형 ]
< 정수형 >
short
int
long
⇒ 10진수, 8진수, 16진수의 정수가 저장됨
⇒ signed: 양수, 0, 음수를 모두 표현
//int 보다 작거나 같은 크기의 저장공간 ; 16비트의 정수값이 저장 (정수형 short)
signed short int
short int
short
//4바이트 (32비트) 크기의 저장공간
signed int
int
signed
//int보다 크거나 같은 크기의 저장공간
signed long int
long int
long
⇒ unsigned: 0과 양수만을 표현 (* 자료형 unsigned는 0과 양수만을 지원하므로, 동일한 signed 자료형보다 약 2배 정도가 더 큰 양수를 저장할 수 있다)
< 실수형 >
float
double
< 문자형 >
char
⇒ 1바이트의 저장 공간
< 무치형 >
*void // 아무 자료형도 지정되지 않았으면, 인자가 없고 *반환값도* 없다.
[ 유도 자료형 ]
[ 사용자 정의 자료형 ]
int main(){
short sVar = 32000; //-32767에서 32767까지
int iVar = -2140000000; //약 21억 정도까지 저장 가능
unsigned short int usVar = 65000; //0에서 65536까지 저장 가능; unsigned는 음수를 표현하지 못하므로 32767 * 2 에 해당하는 크기 저장 가능
unsigned int uiVar = 4280000000; //약 0에서 42억 정도까지 저장; 마찬가지로 unsigned이기 때문에 21억 * 2 까지 가능
printf("%d %d\n", sVar, iVar);
print("%u %u\n", usVar, uiVar);
long long dist1 = 2720000000000 //지구와 천왕성 간의 거리(km)
__int64 dist2 = 4500000000000 //태양과 해왕성 간의 거리(km)
return 0;
}
double 과 float 선언 시 주의할 것!
float x = 3.14
⇒ 값을 표기하면 컴파일러가 그 크기와 형태를 보고 적당한 자료형을 선택함.
위와 같이 코드 작성 시 warning C4305: '초기화 중" : 'double'에서 'float'으로 잘립니다. 가 뜸.
왜냐하면 3.14는 8바이트 double형 상수로 생각하며 이 값을 저장하는 변수는 4바이트 float형이기 때문에 값이 잘려나갈수 있음을 경고한 것입니다. 이때는 3.14f와 같이 f 접미사를 붙여 float형 상수로 자료형을 변경시킬 수 있습니다. (3.14가 float형으로 충분히 표현할 수 있음에도 불구하고, 따로 f 접미사를 붙여주어야 하는 이유는 부동소수형 상수, 즉 실수는 기본적으로 double형이라고 간주해버리기 때문입니다.)