* 자료형 Data Type
- 메모리(RAM)에 저장하기 위해서는 반드시 장소를 지정해야 한다
(메모리할당을 해야 한다)
- 할당된 메모리에 저장하고자 하는 값이
어떤 형식의 값인지에 따라 데이터 타입을 지정해야 한다.
이것을 자료형이라 한다
- 할당된 메모리에 이름 붙여서 접근을 하면 되는데
이것을 변수명이라 한다.
- 변수명은 반드시 자료형과 함께 선언하고 사용해야 한다
- 변수는 새로운 값이 대입이되면,
기존에 가지고 있던 값은 없어진다
1. 정수형 (int)
- 소수점이 없는 숫자값
- int
.메모리 2바이트 할당
- long int (long만 써도 사용가능)
.메모리 4바이트 할당
int kor; //kor 정수형 변수를 선언
int eng,mat; //정수형 변수 2개 동시 선언
// = 연산자 이용해서 변수에 값을 대입
kor=80;
printf("%d %d\n",5,kor);
kor=57;
printf("국어점수=%d\n",kor);
eng=80;
mat=90;
int aver=(kor+eng+mat)/3; //평균구하기
// = 57 + 80 + 90/3
//산술연산자우선순위
// * / -> + -
//모든 연산자들 중에서 최우선 연산자 ( )
//모든 연산자들 중에서 마지막 연산자 =
printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%d\n",aver);
//변수의 주소값을 출력 &변수명
printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
printf("eng변수의 주소=%u\n",&eng);
printf("mat변수의 주소=%u\n",&mat);
//자료형의 메모리 크기
printf("int형의 메모리 크기 = %d\n",sizeof(int));
printf("long형의 메모리 크기 = %d\n",sizeof(long));
printf("float형의 메모리 크기 = %d\n",sizeof(float));
printf("double형의 메모리 크기 = %d\n",sizeof(double));
2. 정수형 (long)
long age=5;
printf("age=%ld\n",age); //long형 출력
//상수값 뒤에 L을 붙이면 long형이라는 의미
printf("long형의 메모리 크기 = %d\n",sizeof(5L));
3. 실수형 (float)
- 소수점을 가지고 있는 값을 지칭함
- 약 소수점 7자리까지 표현 가능
float height=123.456;
printf("height=%f\n",height);
4. 실수형 (double)
- 소수점 15자리정도까지 표현 가능
double d=123.45;
printf("d=%lf\n",d);
5. 문자형 (char)
- 문자 1글자당 메모리 1바이트 할당
char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));
printf("ch=%d\n",ch);
- %d와 %c는 서로 호환가능하다
- 이유? 아스키코드값이 있기 때문이다.
- 아스키코드(ASCII Code)란?
. 미국에서 정한 코드표로 코드표에 있는 문자에
10진 정수값을 부여한 코드
. 코드표에 있는 문자는 대략 키보드에 있는 글자를 가르킨다.
. 키보드의 방향키의 아스키코드값이 얼마인지 검색?
- spacebar의 아스키코드
printf("spacebar의 ASCII Code=%d",' ');
- 소문자 'a'의 아스키코드
printf("소문자 'a'의 아스키코드=%d",'a');
- 대문자 'A'를 소문자 'a' 출력
printf("%c\n",'A'+32);
printf("%c\n",'d'-32);
6. 문자열형
- char형을 조합해서 문자열형을 만들어 쓰면 된다
- 메모리의 크기는 대입하고자 하는 최소한 문자갯수+1 주어야 한다
글자갯수보다 작거나 동일하게 주면 안된다
- 문자열의 인덱스(순서)는 0부터 카운트가 시작된다
- %s는 null문자 만날때 까지
null문자? 문자열의 끝을 가르키는 값이다. \0
char str[4]="SKY\0"
null문자는 메모리만 할당되면 자동으로 추가된다.
char str[3]="SKY"
char str[4]="SKY"
char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));
printf("str[0]=%c\n",str[0]);
#######################################################
#include <stdio.h>
void main()
{
/*
int kor; //kor 정수형 변수를 선언
int eng,mat; //정수형 변수 2개 동시 선언
// = 연산자 이용해서 변수에 값을 대입
kor=80;
printf("%d %d\n",5,kor);
kor=57;
printf("국어점수=%d\n",kor);
eng=80;
mat=90;
int aver=(kor+eng+mat)/3; //평균구하기
printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%d\n",aver);
//변수의 주소값을 출력 &변수명
printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
printf("eng변수의 주소=%u\n",&eng);
printf("mat변수의 주소=%u\n",&mat);
//자료형의 메모리 크기
printf("int형의 메모리 크기 = %d\n",sizeof(int));
printf("long형의 메모리 크기 = %d\n",sizeof(long));
printf("float형의 메모리 크기 = %d\n",sizeof(float));
printf("double형의 메모리 크기 = %d\n",sizeof(double));
*/
/*
long age=5;
printf("age=%ld\n",age); //long형 출력
printf("long형의 메모리 크기 = %d\n",sizeof(5L));
*/
/*
float height=123.456;
printf("height=%f\n",height);
printf("height=%.2f\n",height);
printf("height=%10.2f\n",height);
printf("height=%.15f\n",height);
double d=123.45;
printf("d=%lf\n",d);
printf("d=%.15lf\n",d);
*/
/*
char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));
printf("ch=%d\n",ch);
printf("spacebar의 ASCII Code=%d",' ');
printf("소문자 'a'의 아스키코드=%d",'a');
printf("%c\n",'A'+32);
printf("%c\n",'d'-32);
*/
char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));
}
---------------------------------------------------
'..열심히 공부하세.. > C 입문' 카테고리의 다른 글
| [05] switch~case문 (0) | 2012.05.22 |
|---|---|
| [04] 제어문 (if 조건문) (0) | 2012.05.21 |
| [02] 출력서식문자 (0) | 2012.05.15 |
| [01] C언어 개론 (0) | 2012.05.15 |
| 3) 연산자 (0) | 2006.08.16 |