U E D R , A S I H C RSS

새싹교실/2017/C언어가르쳐조/4월3일


1. 예정

  • 이번에도 아마 2시간 강의
  • 자료형, 변수, 상수
    • 변수
      • 변수 선언
      • 초기화
      • 변수 이름 규칙
      • const 키워드
      • 저장 클래스 - static, ...
    • 자료형
      • 정수 자료형 : int, char, long, ...
      • 실수 자료형 : float, double, ...
      • 부동 소수점 실수
      • C에서의 논리값
    • 자료형 변환 규칙
      • 묵시적 형 변환
      • 명시적 형 변환 : 정보 손실
    • 상수
      • 정수형 상수 : 10진수 8진수, 16진수
      • 문자 상수
      • Escape Sequence
      • 문자열
------------1시간-------------
  • 연산자
    • 산술 연산자
      • +, -, *, /
      • % : 나머지 연산자
    • 비교 연산자
      • <, >, >=, <=, ==, !=
    • 논리 연산자
      • C에서의 논리값 : 다시
      • && : AND 연산자
      • || : OR 연산자
      • ! : NOT 연산자
    • 대입 연산자
      • 연속된 대입 연산자
      • 복합 대입 연산자
    • 비트 연산자
      • 비트 논리 연산자 : &, |, ~, ^
      • 시프트 연산자 : <<, >>
    • 그 외
      • sizeof()
      • 형 변환 연산자
      • 삼항 조건 연산자
      • ,는 연산자
    • 연산자 우선 순위 / 결합 순서
------------2시간-------------

2. 진행


변수(variable)-변할 수 있는 수.
변수 선언 방법
int a; 이때 a가 이름(식별자) 숫자 자체가 변수이름이 될수 없다. 그러나 '_'등 쓸수 있다. 대 소문자도 구별됨.
변수생성 시 변수값에 뭐가 들어있는지 알수 없다.
float pi=3.14;로 쓰면 pi값이 바뀔수 있음 ---> const float pi=3.14;로 쓰면 pi값을 바꿀 수 없음.
변수의 생존기간나 사용범위 지정하는 것들
automatic, static
automatic 변수 - 함수 호출후 그 함수에서 그 변수가 사라짐.
but static 변수- 함수 호출후도 사라지지 않음. -------> 함수의 호출횟수 구할때 사용가능.
extern 변수 - 다른 파일에 있는 변수를 가져올 수 있음.
prinitive type
integer(정수) real(실수) 두개로 나뉨
integer char(1byte)>문자로 알고 있는데 실제는 이것도 정수임.

int

long (int)

long long int

short (int)
integer에는 signed unsigned 모두 존재.
char -1byte. int- 보통은 4byte 이나 운영체제 등에 따라 달라지기 때문에 확실히 정해져있지 않음.
signed vs unsigned cf> 1의 보수의 문제점 - ...
byte = n일때
unsigned의 표현가능 범위 : 0~2^n-1(맞는지 모름.......)
singed의 표현가능 범위 : -2^(n-1)~2^n-1
short int : 2byte.
int long long long int short 모두 각각 singed unsigned가 있음.
보통 int로 쓰면 (signed)int를 의미.
cf)ASCII-아스키코드
*real
float-4byte
double- 8byte.
long double
floating point
소수의 표현 가능 범위 & 소수 표현 원리 , 실수부 ...
c에서 0이면 거짓 0이 아닌 값은 모두 참. ex 8, 7, 9 등
int a=7 일때나 a=-1일때도 if(a)가 돌아감.
if(a=b)---다시 설명 부탁....
c언어에서는 if()에서 ()안에 논리값이 안들어가도 됨. ex) a=7을 넣어도 돌아가고 a=b를 넣어도 돌아감 단 a=b=0이 아니어야한다. ()안에 0만 안들어가면 됨.
묵시적vs명시적
묵시적 ex
float b
int a = (int)b+1;
규칙들-작은걸 큰걸로(단 정수보다 실수가 더 크다 아마 예외는 없다).
명시적
조심해야 할 것 - 값이 중간에 잘릴 수 있음.
float a=3.13284237L붙이면 long double됨.
'\n'
'\t'
'\b'-backspace
'\\'
'\''
'\'''
'\a' 경고음.
'\0'-NULL
"Hello""world!"--->"Helloworld!"
문자열 arr100="\"Hello world!\""
operator : 연산자
산술연산자 : +-*/%
int/int Q
float/float float
비교연산자 : >, <, >=, <=, ==, !=
cf> 3=3.0했을때 오류날수 있음 그래서 변환을 해줘야 (int)3.0 이렇게
논리연산자 && || ! a<b || 함수 -----> a
대입연산자 =, +=, -=, *=, /=, %=
비트연산자 int float가 비트로 이루어져 있는데 그 비트 하나하나에 대해서 계산을 함.
& | ^(exclusive or) ~(단항연산자) << >>
10111111
00000001
10111111 --- |로 계산시 나오는 값. --&로 계산시 00000001 ----^로 계산시 나오는 값- 10111110
~11111111--> 00000000
, << 이용시 주의해야 할 점 --- signed의 경우 맨앞자리 1을 당겨와서 맨앞이 0으로 되면 부호가 변함.
00000001일때 3<<해줄 경우 00001000으로 됨. >>는 왼쪽으로
sizeof(int) int의 크기를 알려줌.
삼항연산자는 오직 하나뿐. a? b:c이런 경우 ---코드를 짧게 쓰기 위해 이것을 이용
3>4? b:c 일 경우 c실행.
a+b*c;
우선 순위
산술 비교 논리 대입 순.
단항> 다항
++ --( 후위)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
++ --(전위) !, ~, + -(단항)
sizeof(), (type), &, *
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
/ * %
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
+ -
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
<< >>
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
<=, >=
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
== !=
ㅡㅡㅡㅡㅡㅡㅡㅡㅡ
(logic)
위에까지가 기본적인 우선순위.
AND>XOR>OR.
비트연산 먼저 그다음 논리 연산.

3. 실습

  • 예정으로는 없습니다.
  • 강의 중 조금씩 해보는 정도로 합니다.

4. 기타 / 후기 / 방명록

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2017-04-07 17:33:35
Processing time 0.1869 sec