More actions
No edit summary |
(Table transclusion repair v1) |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 50: | Line 50: | ||
= 진행 = | = 진행 = | ||
변수(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<b || 함수 -----> a<b만족시 함수 실행 않함. | |||
대입연산자 =, +=, -=, *=, /=, %= | |||
비트연산자 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. | |||
비트연산 먼저 그다음 논리 연산. | |||
= 실습 = | = 실습 = | ||
* 예정으로는 없습니다. | * 예정으로는 없습니다. | ||
| Line 58: | Line 159: | ||
[[새싹교실/2017/C언어가르쳐조]] | [[새싹교실/2017/C언어가르쳐조]] | ||
[[새싹교실/2017]] | [[새싹교실/2017]] | ||
Latest revision as of 12:46, 27 March 2026
예정
- 이번에도 아마 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<b만족시 함수 실행 않함. 대입연산자 =, +=, -=, *=, /=, %= 비트연산자 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. 비트연산 먼저 그다음 논리 연산.
실습
- 예정으로는 없습니다.
- 강의 중 조금씩 해보는 정도로 합니다.
기타 / 후기 / 방명록
- 아 4일이지 참 - 멍청한 튜터