목록전체 글 (158)
Nagie's DevStory
지금까지 공부한 지식을 되짚어 보면 C에는 여러 가지 데이터 타입이 있다는 걸 알 수 있다. 지금까지 출력과 입력을 '%d' 로만 받았는데 대부분은 이게 뭔지 모르고 그냥 사용했을 것이다. '%d'의 d는 decimal(십진법)이다. 즉 10진수의 정수를 표현한다는 것이다. 그러면 이젠 '%d'말고 여러 가지 서식 지정자를 알아보자. 서식 지정자 설명 %d 10진수 정수로 해석 %i 10진수 정수로 해석 %o 8진수 정수로 해석 %u 부호(양수만 취급)가 없는 10진수로 해석 %x 부호(양수만 취급)가 없는 16진수로 해석 %f 10진수 표기법을 사용한 실수로 해석 (float 자료형을 사용시 사용함) %lf 10진수 표기법을 사용한 실수로 해석 (double 자료형을 사용시 사용함) %e 지수 표기법을..
sizeof()는 자료형의 크기를 바이트 단위로 구할 수 있다. 사용법은 아래와 같다. #include int main() { int test01 = 10; char test02 = 'A'; printf_s("test01의 크기 : %d바이트\n", (unsigned int)sizeof(test01)); printf_s("test02의 크기 : %d바이트\n", (unsigned int)sizeof(test02)); } 결과는 각 자료형의 크기처럼 4바이트 1바이트로 나온다.
앞서 C를 처음 배웠을 때 'HelloWorld'를 출력했다. 출력을 했다면 그와 반대되는 개념인 입력도 가능하다. C 표준에 입력받는 함수가 여러 개 있긴 하지만 대표적으로 하나를 꼽자면 scanf이다. scanf으로 여러 종류의 포맷을 받아올 수 있다. 사용법은 아래와 같다. #include int main () { int nData = 0; scanf_s("%d",&nData); } printf(); 와 다른 점은 변수를 사용할 때 앞에 & (주소 연산자)를 사용한다는 것인데 이건 포인터와 연관되어 있어 다소 설명이 어렵다. 그리고 문자를 받을 때 변수가 아닌 배열을 사용해 문자열을 받게 된다면 & (주소 연산자)를 사용하지 않는다. 차차 공부하겠지만 배열이 곧 포인터기 때문이다. 문자열 배열 사용..
우선순위 연산자 연산 유형 결합 법칙 1 순위 [ ] 식 , 배열첨자 왼쪽에서 오른쪽 ▶ ( ) 식 , 함수호출 . 구조체 / 공용체 멤버 호출 -> 구조체 / 공용체 멤버 호출 ( 포인터 ) ++ ( 후위 ) 증가 연산 -- ( 후위 ) 감소 연산 2 순위 sizeof 자료형의 크기 오른쪽에서 왼쪽 ◀ & 주소 참조 * 포인터 참조 + 단항 덧셈 - 단항 뺄셈 ~ 비트 NOT ! 논리 NOT ++ ( 전위 ) 증가 연산 -- ( 전위 ) 감소 연산 3 순위 * 곱셈 왼쪽에서 오른쪽 ▶ / 나눗셈 % 나머지 4 순위 + 덧셈 왼쪽에서 오른쪽 ▶ - 뺄셈 5 순위 오른쪽으로 비트 쉬프트 6 순위 큼 ( 논리 ) = 크거나 같음 ( 논리 ) 7 순위 == 같음 ( 논리 ) 왼쪽에서 오른쪽 ▶ != 다름 ( ..
우리가 수학 문제를 풀 때 사용하는 기호를 C에선 연산자라고 부른다. 연산자도 여러 가지 종류가 있으며 수학의 기호처럼 연산자 역시 계산 우선순위가 있다. 구분 연산자 기능 대입 연산자 = 오른쪽 값을 왼쪽으로 대입 산술 연산자 + 더하기 - 빼기 * 곱하기 / 나누기 (몫) % 나머지 관계 연산자 좌변이 우변보다 크면 참 = 좌변이 우변보다 크거나 같으면 참 == 좌변과 우변이 같으면 참 != 좌변과 우변이 다르면 논리 연산자 && 양변이 모두 참이면 참 (AND) || 양변중 하나라도 참이면 참 (OR) ! 참이면 거짓 거짓이면 참 (NOT) 복합 대입 연산자 += 양변을 더한 값을 좌변에 대입 -= 양변을 뺀 값을 좌변에 대입 *= 양변을 곱한 값을 좌변에 대입 /= 양변을 나눈 값(몫)을 좌변에 ..