본문 바로가기
수업 복습/C 복습 노트

[C언어] C언어 수업 2, 3차시

by LimitLog 2021. 3. 23.

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 = +++ 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

댓글