[혼공학습단] 혼자 공부하는 C언어 2주차

CE의 velog·2025년 1월 19일
0

[chapter 03] 변수와 데이터 입력~[chapter04] 연산자

03-1 변수

  • 변수 선언 방법
    -변수 선언 방법은 데이터에 맞는 자료형과 변수명을 나란히 씀
    예) int a; (정수를 넣을 공간으로 int)
    -대입 연산자 =
    대입 연산자는 오른쪽 값을 왼쪽에 할당한다는 의미
    예) a=10; (10을 a에 할당한다는 의미)
    -변수 선언과 대입 규칙
    1. 중괄호{}의 블록 안에 변수를 선언하며 선언한 위치부터 블록 끝까지 사용가능
    2. 변수의 자료형이 같으면 동시에 둘 이상의 변수를 선언가능 (콤마 이용)
    3. 대입 연산자는 연산자 왼쪽의 변수에 오른쪽의 값을 저장
    4. 변수는 대입 연산자 왼쪽에는 저장 공간이 되고, 오른쪽에서는 값이 됨
      예)
      int a, b;
      a=10; (이때의 a는 저장공간)
      b=a; (이때의 a는 값
      => 같은 이름의 a라도 위치에 따라 변수의 용도가 다름
  • 정수 자료형
    -char형은 작은 범위의 정수를 저장할 수 있지만 주로 문자를 저장하는 용도
    -char형 변수를 출력할 때 %c를 사용하면 그 값에 해당하는 문자 출력, % d를 사용하면 정수로 출력
  • unsigned 정수 자료형
    -정수형을 양수 전용으로 쓸 때 사용

  • 실수 자료형
    -float(출력 변환 문자: %f)
    -double(출력 변환 문자: %lf)
    -long double(출력 변환 문자: %Lf)
    -실수형은 저장하는 값에 따라 숫자가 정확하게 표현될 수도 안 될 수도 있음 ( 컴퓨터에서 실수를 표현하는 방식이 오차를 갖고 있기 때문에 일정 범위 내의 값을 사용하기)

  • 문자열 저장
    -char 배열명[문자열길이+1] = 문자열;
    -컴파일러가 문자열의 끝에 널문자를 자동으로 추가하기 때문에 배열의 크기를 하나 더 잡는 것

  • const를 사용한 변수
    -const 자료형 변수형 = 값;
    -const를 사용 시 초기화 된 값을 바꿀 수 없음
    -선언과 동시에 초기화를 해야 함

03-2 데이터 입력

  • scanf 함수
    -입력 문자들을 스캔해 원하는 형태의 데이터로 바꿔주는 함수로 어떤 데이터로 변환할 지는 변환 문자를 통해 결정, 키보드에서 입력한 값을 변수에 저장할 때 사용
    -사용법) 변수의 형태에 맞는 변환 문자를 사용하고 입력할 변수 앞에 &를 붙이기 예) scanf("%d",&a);
    -유의점)
    1. 변수명을 지정할 때 % 붙이기
    2. 함수에서 사용한 변환 문자와 맞는 형태의 데이터를 입력
    -응용)
    여러 개의 변환문자를 나열해 한 번에 2개 이상의 변수에 값 입력
    예) scanf("%d%lf", &a, &b);
    => int형 변수 a와 double형 변수에 입력 시 위처럼 사용

  • 문자와 문자열
    -char형 변수에 문자 입력 시 키보드로 입력하는 모든 문자가 대상 (스페이스바나 엔터조차도 하나의 문자로 전달)
    -스페이스,엔터,탭 등을 만나면 바로 전까지 전달되므로 공백 없이 연속으로 입력하기
    -문자열은 char 배열에 &s 변환 문자를 사용, 배열명에는 &를 붙이지 않음

04-1 산술 연산자, 관계 연산자, 논리 연산자

  • 산술 연산자와 대입 연산자
    -산술 연산자는 수학에서의 연산자를 의미, 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)가 있다
    -대입 연산자(=)는 오른쪽의 수식의 결과를 왼쪽 변수에 저장
    예)
    a=10;
    sum=a+b;
    -나누기 연산자와 나머지 연산자
    나누기는 나누기 연산자인 /을 사용하고, 피연산자의 형태에 따라 결과가 달라지니 주의

  • 증감 연산자
    -증감 연산자(++,--)는 하나의 연산자로 대입 연산까지 수행하므로 변수의 값을 1씩 증가시키거나 감소시킬 때 사용
    예) a라는 int형 변수에 1을 더하려면 a=a+1; =>증감 연산자 이용 시 ++a;
    -++a로 표현한다는 말은 증감 연산자가 대입 연산을 포함하므로 피연산자의 값이 바뀐다는 의미, 증감 연산자의 피연산자로 상수를 사용 불가능

    -전위 표기와 후위 표기

    1. 증감 연산자가 피연산자 앞에 놓이면 전위 표기, 뒤에 놓이면 후위 표 기로 전위 표기는 값이 증감하고 나서 연산에 사용, 후위 표기는 연산에 사용하고 나서 값이 증감
    2. 증감 연산자를 단독으로 사용 시에는 전위와 후위의 결과가 같지만 다른 연산자와 함께 쓸 때는 결과에 영향을 줌
  • 관계 연산자
    -조건,관계에 따라 명령 실행 시 필요
    -대소 관계 연산자, 동등 관계 연산자가 존재
    -대소 관계는 < 또는 > 등의 기호 사용, 동등 관계 ==나 != 기호 사용하며 연산자는 모두 피연산자를 2개 사용, 연산의 결과값은 1 또는 0

  • 논리 연산자
    -논리 관계를 판단하는 데 사용
    1. &&는 논리곱(AND) 연산자로 2개의 피연산자로 모두 참일 때만 연산 결과가 참
    2. ||는 논리합(OR) 연산자로 둘 중에 하나라도 참이면 참
    3. !는 논리부정(NOT) 연산자로 그 참과 거짓을 바꿀 때 사용
    -숏 서킷 룰은 좌항만으로 &&와 || 연산 결과를 판별하는 기능으로 좌항이 참이거나 거짓이면 우황에 관계없이 결과는 참이거나 거짓

  • 연산의 결과값을 처리하는 방법
    -연산을 실행한 후 연산의 결과값을 변수에 저장하지 않으면 그 값은 버려짐

04-2 그 외 유용한 연산자

  • 형 변환 연산자
    -형 변환 연산자는 피연산자를 하나 가지며 피연산자의 값을 원하는 형태로 바꿈
    -사용: (자료형)피연산자
    예) 정수를 실수로 바꾸는 경우 (double)10 -> 10.0
    -처음부터 a와b를 double형으로 선언하면 좋지만 double형은 저장공간이 크고 연산 속도가 느리며 오차가 발생하므로 int형을 기본형으로 사용하고 형변환해서 사용
    -자동 형 변환 (=암시적인 형 변환, 묵시적인 형 변환)
    컴파일러는 컴파일 과정에서 피연산자의 형태가 다르면 형태를 일치하는 작업을 수행

  • sizeof 연산자
    -피연산자의 크기를 바이트 단위로 계산해서 알려줌 (데이터 크기 확인, 메모리 동적으로 할당하는 작업)
    -sizeof가 연산자이므로 기본적으로 피연산자에 괄호를 사용할 필요가 없지만 예외가 있으므로 그냥 괄호를 사용하기

  • 복합 대입 연산자
    -연산 결과를 다시 피연산자에 저장
    -산술 복합대입 연산자: +=, -=, *=, /=, &=
    -복합대입 연산자는 저장 공간과 연산 공간이 다름

  • 콤마 연산자
    -콤마 연산자는 한 번에 여러 개의 수식을 차례로 나열할 때 사용, 대입 연산자와 함께 사용 시 괄호 필요

  • 조건 연산자
    -유일한 삼항 연산자로 ?와: 기호를 함께 사용해 표현
    -첫 번째 피연산자가 참이면 두 번째 피연산자가 결과값, 첫 번째 피연산자가 거짓이면 세 번째 피연산자가 결과값
    -사용: (a > b) ? a : b

  • 비트 연산자
    -비트 논리곱 연산자(&): 두 비트가 모두 1인 경우에만 1로 계산
    -비트별 배타적 논리합 연산자(^): 두 비트가 서로 다른 경우에만 1로 계산
    -비트별 논리합 연산자(|): 두 비트 중 하나라도 참이면 1로 계산
    -비트별 부정 연산자(~): 피연산자가 하나로 ~연산은 1을 0으로 바꾸고 0을 1로 바꿈
    -비트 이동 연산자: <<는 비트를 왼쪽으로 이동, >>은 비트를 오른쪽으로 이동

  • 연산자 우선 순위
    -단항 > 이항 > 삼항 연산자 순서로
    -산술 > (비트 이동) > 관계 > 논리 연산자 순서로

기본 숙제



추가 숙제

0개의 댓글

관련 채용 정보