[[TableOfContents]] = 예정 = * 이번에도 아마 2시간 강의 * 자료형, 변수, 상수 * 변수 * 변수 선언 * 초기화 * 변수 이름 규칙 * const 키워드 * 저장 클래스 - static, ... * 자료형 * 정수 자료형 : int, char, long, ... * 실수 자료형 : float, double, ... * 부동 소수점 실수 * C에서의 논리값 * 자료형 변환 규칙 * 묵시적 형 변환 * 명시적 형 변환 : 정보 손실 * 상수 * 정수형 상수 : 10진수 8진수, 16진수 * 문자 상수 * Escape Sequence * 문자열 {{{ ------------1시간------------- }}} * 연산자 * 산술 연산자 * +, -, *, / * % : 나머지 연산자 * 비교 연산자 * <, >, >=, <=, ==, != * 논리 연산자 * C에서의 논리값 : 다시 * && : AND 연산자 * {{{|| : OR 연산자}}} * ! : NOT 연산자 * 대입 연산자 * 연속된 대입 연산자 * 복합 대입 연산자 * 비트 연산자 * 비트 논리 연산자 : &, |, ~, ^ * 시프트 연산자 : <<, >> * 그 외 * sizeof() * 형 변환 연산자 * 삼항 조건 연산자 * ,는 연산자 * 연산자 우선 순위 / 결합 순서 {{{ ------------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!" 문자열 arr[100]="\"Hello world!\"" operator : 연산자 산술연산자 : +-*/% int/int Q float/float float 비교연산자 : >, <, >=, <=, ==, != cf> 3=3.0했을때 오류날수 있음 그래서 변환을 해줘야 (int)3.0 이렇게 논리연산자 && || ! a a> 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. 비트연산 먼저 그다음 논리 연산. = 실습 = * 예정으로는 없습니다. * 강의 중 조금씩 해보는 정도로 합니다. = 기타 / 후기 / 방명록 = * 아 4일이지 참 - [성훈|멍청한 튜터] ----------------------------------- [새싹교실/2017/C언어가르쳐조] [새싹교실/2017]