[ C언어 ]C언어 개요, 변수와 입출력

Dongchan Alex Kim·2024년 4월 1일
post-thumbnail

변수의 자료형

자료형 → 저장되는 데이터의 종류에 따른 형태

  • 사용할 데이터의 형태, 메모리 크기, 연산 방법을 CPU에게 알려주는 역할
  • 한번 선언을 하게되면, 그만큼의 메모리를 미리 할당받게 됨, 효율성에 아주 큰 영향을 미침.
  • 범위를 벗어날 경우는 overflow발생 (오류 아님.)

정수 자료형의 서식지정자

## 서직지정자 적용 예시 코드
#include <studio.h>

int main(){
	char c = 1;
    short s = 100;
    int i = 10000000;
    long long ll = 100000000000000;
    
    unsigned char uc = 2
    unsigned short us = 200;
    unsigned int ui = 200000000000;
    unsigned long long ull = 20000000000000;
    
    printf("%d %d %d %lld %u %u $u %llu", c, s, i, ll, uc, us, ui, ull);
    
    return 0
}

실수 자료형의 크기와 범위, 서식 지정자

  • 서식지정자
#include <stdio.h>

int main(){
	float f = 1.123;
    double d = 5.6789;
    
    printf("%f, %lf", f, d);
    return 0
}

상수 const

  • const
  • define 메크로 상수 → #define(상수이름) (값)으로 정의한다.
#include <stdio.h>

int main(){
	const int n = 3; ##여기서 상수로 선언
    n = 2;   ##근데 여기서 변환, readonly
    printf("%d", n);
    return 0;
}
##이 코드 자체는 오류가 남
#include <stdio.h>
#define NUM 3 ##여기에 ;이거 안붙음
int main(){
	int n = 1;
    printf("%d", a+NUM);
}

자동 형 변환

  • 메모리 크기가 큰 자료형 우선 → 메모리 크기가 큰 경우 데이터 손실 x
  • 실수 자료형 우선
#include <stdio.h>

int main(){
	float n1 = 12;
    int n2 = 3.45;
    char n3 = 131;
    printf("%f %d %d", n1, n2, n3);
    return 0;
}

명시적 형 변환

  • 사용자가 직접 형 변환
  • 변환할 식, 자료형 앞에 (변환할 자료형)을 붙여준다.
#include <stdio.h>
int main(){
	int n1 = 7;
    int n2 = 4;
    printf("%d %f", n1/n2, (float)n1/n2);
    return 0;
}

문자 자료형

char의 값을 문자에 대응시킨다 (ASCII 코드) → 정수형 자료형이다.

  • 아스키(ASCII)코드는 문자의 표현을 목적으로 각 문자에 고유한 숫자를 지정해둔 것이다.
#include <stdio.h>
int main(){
	char a = 65;
    char b = 'A';
    printf("%d %d %c %c", a,b,a,b) ##%c는 아스키코드로 변환해주는 코드
    return 0
}

변수 이름 생성 규칙

  1. 변수의 이름은 영문자(대소문자), 숫자, 언더스코어(_)로만 구성된다.(*공백 불가능)
  2. 변수의 이름은 숫자로 시작될 수 있다.
  3. 변수의 이름으로 C언어에서 미리 정의된 키워드는 사용할 수 없다.(int, float, printf등등)

입력

scanf()함수 → 표준 입력을 받아 변수에 값을 저장

  1. 첫 번째 인수 - 큰 따옴표 안에 서식 지정자 넣기
  2. 두 번째 인수 - 입력 받을 변수 명 앞에 &(ampersand) 붙여 넣기
#include <stdio.h>
int main(){
	int n1;
    float n2;
    scanf("%d", &n1);
    scanf("%f", &n2);
    return 0;
}

int main(){
	int n1;
    float n2;
    scanf("%d %f", &n1, &n2);
    return 0;
}

printf() → 형식에 맞게 표준 출력 실행

  1. 첫 번째 인수 - 큰 따옴표 안에 원하는 내용과 서식 지정자 넣기
  2. 두 번째 인수 - 출력을 원하는 변수 이름(or 식)을 순서대로 넣기
  • \n 은 줄 개행 (줄 바꿈)
  • \t 은 tab
#include <stdio.h>

int main(){
	int n1 = 123;
    double n2 = 45.678;
    printf("n1dms? n1 = %d\n n2는? n2 = %lf", n1, n2);
    return 0;
}

#include <stdio.h>
int main(){
	int n1, n2;
    scanf("%d %d", &n1, &n2);
    printf("n1 is %d\nn2 is %d\n", n1, n2);
    return 0;
}

출력의 다양한 형태

#include <stdio.h>
int main(){
	int n1 = 100, n2 = 11;
    float n3 = 13.765;
    printf("%-7d%d\n", n1,n1);
    printf("%5d%10.2f", n2,n3);
    return 0;
}

## 100 4칸 100
##3칸 11 5칸 13.77
profile
Disciplined, Be systemic

0개의 댓글