카테고리 없음

C언어 강좌(공부) #10~12장

바래다주기 2024. 5. 7. 03:25

10장 시프트 연산자

비트 단위 연산자와 비트 패턴
1 비트에 0 또는 1 중 한 가지 값을 저장 가능


C언어의 가장 작은 자료형은 1바이트

비트 패턴과 16진법


C언어는 2진법 상수 표현을 제공하지 않음
2진법 대신에 소스 코드에서는 표현하기 쉬운 16진법을 주로 사용

 

시프트 연산자
변수의 값을 지정한 비트 수만큼 왼쪽(<<) 또는 오른쪽(>>) 으로 비트를 이동

 

오버 플로 : 비트가 왼쪽으로 이동해서 사라지는 것

언더 플로 : 비트가 오른쪽으로 이동해서 사라지는 것

2^n으로 생각하기 << 곱, >> 나눗셈

10장 비트 연산자

비트 연산자
비트 단위로 AND, OR, NOT, XOR 연산을 수행

 

AND 연산 : a,b 값이 둘다 1이어야지만 연산의 결과가 1
OR 연산 : a,b 값이 둘다 0인 경우에만 연산의 결과가 0
NOT 연산 : 현재 비트 패턴이 반전 (0이면 1, 1이면 0)
XOR 연산 : a,b 값이 같으면 연산의 결과가 0 다르면 1

11장 지역 변수와 전역 변수

지역 변수

  1. 지역 변수 : 함수 안에 선언한 변수나 매개 변수
  2. 함수와 같은 수명을 가진다
  3. 지역 변수는 스스로 초기화되지 않는다
    지역 변수 이름은 중복해서 사용할 수 있다
    함수 안에 동일한 이름의 지역 변수가 있는 경우 오류
    지역 변수는 자신을 선언한 함수 안에서만 사용 가능

전역 변수

  1. 전역변수 : 함수 밖에 선언한 변수
  2. 프로그램이 시작할 때 만들어졌다가 프로그램이 종료될 때 함께 사라진다
  3. 프로그램과 수명이 동일
  4. 전역 변수는 프로그램 전체 영역에서 사용 가능
  5. 동일한 이름의 전역 변수를 프로그램 내에서 다시 선언하면 문제 발생
    전역 변수는 특별한 초기화 값이 없으면 0으로 초기화함

전역 변수 주의점
함수가 전역 변수에 종속적이 된다
함수의 독립성을 강조하는 C언어의 장점을 퇴색 시킨다

전역보다 지역을 우선해서 처리

 

extern 키워드
소스 파일을 분리할 때 발생하는 오류

 

statci 키워드
전역 변수 앞에만 사용가능
특정 소스 파일에서만 전역 변수 사용하기

  1. 전역 변수의 사용 범위를 변수가 선언된 소스 파일로 제한
  2. 다른 소르 파일에서 extern 키워드로 참조 불가
  3. 같은 이름의 전역 변수를 다른 소스 파일에서 선언해도 오류 발생 안함

특정 함수에서만 전역 변수 사용하기

  1. 전역 변수를 특정 함수 안에서만 사용하도록 제한
  2. static 키워드를 사용한 함수의 지역 변수들은 지역 변수의 특성을 가지지만
    생명 주기는 전역 변수와 동일

const 키워드

  1. 값을 변경하지 말아야 하는 변수를 변경하는 경우에 문법적으로 오류가
    발생하도록 제공하는 문법
  2. 변수를 상수처럼 값을 변경하지 않고 쓰고 싶을 때 사용
  3. 프로그래머의 실수 방지를 위해 제공하는 문법

12장 배열과 문자열

배열

자료형이 같은 변수들을 그룹으로 묶어서 관리
[ ]를 사용하여 저장 공간을 몇개 만들지 명시

배열은 사용자 정의 자료형이다

문자열

문자열을 다루는 C 내장 함수
str 로 시작하는 문자열 표준 함수들은 string.h 파일에서 함수의 원형 제공


strlen = string + length 문자열의 길이를 구하는 문자열 표준 함수
strcpy = string + copy 문자열을 복사하는 문자열 표준 함수
strcat = string + concatenation 문자열 뒤에 다른 문자열을 덧붙이는 문자열 표준 함수

2차원 배열

2차원 데이터를 1차원 데이터로 변환하기
{(행번호 - 1) * 열개수} + 열번호 - 1

 

1차원 데이터를 2차원 데이터로 변환하기 (행)
행번호 = (돌 번호 / 열 개수) + 1

 

1차원 데이터를 2차원 데이터로 변환하기 (열)
열 번호 = (돌번호 % 열 개수) + 1