1. 변수의 데이터 할당량
데이터를 받는 변수에는 여러 형태가 있다.
정수형 변수
int : 정수 (값의 범위: -2147483648~2147483647 , 크기: 4byte)
char : 문자 및 정수 (값의 범위: -128~127 , 크기: 1byte)
long : 정수 (값의 범위: -2147483648~2147483647 , 크기: 4byte)
short : -32768~32767 (값의 범위 : -2147483648~2147483647 , 크기: 2byte)
long long : 정수 (값의 범위: -9223372036854775808~9223372036854775807 , 크기: 8byte)
실수형 변수
float : 실수 (값의 범위 : , 크기: 4byte)
double : 실수 (값의 범위: , 크기: 8byte)
long double : 실수 (값의 범위: double이상 , 크기: 8byte 이상)
unsigned라는 키워드를 앞에 붙이면 부호를 없애고 양수만 받을 수 있는 대신 2배 더 높은 수치를 받을 수 있다.
또 할당되는 메모리의 크기는 각 컴파일러마다 다를 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
int main() { //sizeof :: 그 변수의 데이터 할당량을 보여준다.
char gender;
int age;
float weight;
double height;
printf("변수의 할당크기 \n");
printf("gender: %d, age: %d, weight: %d, height: %d \n\n", sizeof(gender), sizeof(age), sizeof(weight), sizeof(height));
printf("자료형의 크기 \n");
printf("char:%d, int:%d, float:%d, double:%d, \n\n", sizeof(char), sizeof(int), sizeof(float), sizeof(double));
printf("정수형 상수: %d, 실수형 상수: %d, \n", sizeof(10), sizeof(3.14159));
return 0;
}
|
cs |
2. 주소 연산자
주소 연산자는 변수의 주소 값을 구하기 위해 사용되는 연산자로 변수가 메모리의 어느 곳에 위치하고 있는지 알 수 있다. 주소값은 데이터를 입력받거나 포인터를 연산할 때 필요하다.
3. 형식 지정자
문자형
%c : 한 문자 출력
%s : 문자열 출력
수치형
%d : 부호 있는 10진수 출력
%f : 부동 소수점 형식 출력 (float형)
%1f : 부동 소수점 형식 출력 (double형)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
void main() {
float kor, eng, math, avg;
char input_ch;
printf("알파벳을 입력하시오 : ");
scanf("%c", &input_ch);
printf("국어점수: ");
scanf("%f",&kor);
printf("영어점수: ");
scanf("%f", &eng);
printf("수학점수: ");
scanf("%f", &math);
avg = (kor + eng + math)/3;
printf("평균점수 : %f \n",avg); //기본출력: 소수점 6자리
printf("평균점수 : %.2f \n",avg); //소수점 둘째자리까지 출력
printf("평균점수 : %10.1f \n",avg); //전체자리수 10자리중 소수점 1자리 (소수점도 전체 자리수에 포함된다) ex)00000000.0
printf("입력한 알파벳 출력 :: %c\n", input_ch);
printf("ASCII CODE :: %d\n", input_ch);
}
|
cs |
4. 강제형변환
1
2
3
4
5
6
7
8
9
10
|
void main() {
int a = 5, b = 2;
float result;
result = a / b; //2.5의 값이나 정수간의 연산이라 소수점이하 값은 버려진다.
printf(" -> 5/2 연산 형 변환 전 :: [%f]\n",result);
result = (float)a / b; //강제 형 변환으로 소수점이하 값 출력
printf(" -> 5/2 연산 형 변환 후 :: [%f]\n",result);
}
|
cs |
5. 증감 연산자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int main() {
int x = 1, y = 1, z = 1;
printf("x %d , y %d , z %d \n", x, y, z);
++x, y++;
printf("x %d , y %d , z %d \n",x,y,z);
z = ++x + y++; //전위연산은 x를 먼저 증가시키고 후위연산은 증가 하기전의 y값을 먼저 더한 뒤 나중에 y를 증가시킨다. 따라서 z는 3+2 = 5
printf("x %d , y %d , z %d \n",x,y,z);
printf("x %d , y %d , z %d \n",x++,++y,z--); //x는 출력 후 1 증가, y는 1 증가 후 출력, z는 출력 후 1 감소
printf("x %d , y %d , z %d \n",x,y,z);
return 0;
}
|
cs |
6. 삼항 연산자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int main() {
int x, y, z, max;
printf("세 수를 입력하세요 ");
scanf("%d %d %d",&x,&y,&z);
printf("x %d y %d z %d\n",x,y,z);
max = (x > y ? x : y); //x, y 중 큰 수를 max 변수에 대입한다.
//? 앞의 식이 참이면 x(앞의 값)를, 식이 거짓이면 y(뒤의 값)를 대입한다.
max = (max > z ? max : z); //max, z 중 큰 수를 max 변수에 대입한다.
printf("가장 큰 값 %d\n",max);
return 0;
}
|
cs |
'수업 복습 > C 복습 노트' 카테고리의 다른 글
[C언어] C언어 수업 8차시 (0) | 2021.05.04 |
---|---|
[C언어] C언어 수업 7차시 (0) | 2021.04.20 |
[C언어] C언어 수업 6차시 (0) | 2021.04.13 |
[C언어] C언어 수업 5차시 (0) | 2021.04.06 |
[C언어] C언어 수업 4차시 (0) | 2021.03.30 |
댓글