본문 바로가기

c언어

C언어 - 숫자 표현 범위 아래의 코드를 살펴보자. #include int main() { int s = 0; int i; for (i = 1; i 더보기
C언어 - 배열 문법 이전 글에서 작성한 코드를 기반으로 배열의 문법에 대해서 공부해보자. #include int ten(int k) { int j; int b = 1; for (j = 0; j < k; j++) b *= 10; return b; } int digit(char a[4], int n) { int i; int b = 1; int s = 0; for (i = 0; i < n; i++) { a[i] -= '0'; b = ten(n - i - 1); s = s + a[i] * b; }return s; } int main() { int s; int n = 4; char a[4] = { '1', '2', '3', '4' }; s = digit(a, n); printf("%d", s); } 첫 번째. 그래서 코드를 다시한번.. 더보기
C언어 - 배열과 함수 이전 글에서 작성한 최종 코드이다. #include int main() { int i, b=0, s=0; char a[4] = { '1', '2', '3', '4' }; for (i = 1; i 더보기
C언어 - 배열의 시작 배열을 쓰는 이유는?! 같은 타입의 데이터들을 묶음으로써 간편하게 관리할 수 있기 때문이다. (아래의 내용을 공부한다면 대충 눈치챌 것이다. ㅋㅋㅋ) 이전 글에서 다룬 코드를 배열 코드로 작성해보았다. #include int main() { char a, b, c, d; a = '1'; b = '2'; c = '3'; d = '4'; printf("%c", a); printf("%c", b); printf("%c", c); printf("%c", d); } #include int main() { char a[4]; a[0] = '1'; a[1] = '2'; a[2] = '3'; a[3] = '4'; printf("%c", a[0]); printf("%c", a[1]); printf("%c", a[2]);.. 더보기
C언어 - 아스키코드 메모리에 저장할 수 있는 값은 0과 1, 이진수만 저장할 수 있다. 그렇다면 알파벳 문자(a, b, c...), 아라비아 숫자(1, 2, 3...)는 어떻게 저장할까? 알파벳 문자와 아라비아 숫자를 메모리에 직접 저장할 수는 없기에 특정 문자에 해당하는 숫자를 미리 정해 놓고(약속해 두고), 메모리에는 실제로 그 숫자를 저장한다. Ex) 숫자 '0'은 48, 알파벳 'A'는 65 라고 약속한다. 아스키 표 특정 문자에 해당하는 숫자를 정하는 방식이 컴퓨터마다 다르면 곤란하기에 대응되는 표를 만들어서 모든 컴퓨터가 아스키 표를 따른다. 아래의 표와 같이 아스키코드는 탭 키나, 리턴 키, 벨 소리를 출력하는 값 등 많은 값을 담아내고 있다. (한글도 아스키코드가 있다!) < 아스키코드는 절대 외울 필요가 없.. 더보기
C언어 - 타입캐스팅 typecasting 타입 캐스팅이란 쉽게 말해서 형 변환을 하는 것이다. 6일차에서 다루었던 자료형을 살펴보자. 예를 들어서 형 확장은 정수형이 실수형이 되는 것이기 때문에 표현 범위가 넓어진다. 하지만 예를들어 형 축소는 실수형이 정수형이 되는 과정에서는 값이 손실되어 형이 축소된다. (ex. 4.3333333333 ------> 4) 그렇다면 왜 형 변환을 하는 것일까? 가장 쉬운 예시로는 정수형과 실수형을 연산할 때이다. #include int main() { int a = 16; int b = 7; float c; c = a / b; printf("%f", c); } 정수형끼리 나누어서 실수형으로 출력해본다면 어떤 값이 나올까? 2가 아닌 소수점이 생긴 2.0000... 이 나온 것을 확인할 수 있다. 하지만 2.0.. 더보기
C언어 - 사용자 정의 함수 (최종) 아래의 코드를 살펴보고 문제점을 찾아보자. #include void add(int a, int b) { int c; c = a + b; printf("%d", c); } int main() { int a; int b; a = 2; b = 3; add(a, b); } 코드를 실행했을 때 컴파일 오류가 발생했을 것이다. 코드를 고치면서 차근차근 오류를 수정해보자. 우선 출력함수를 main() 에서 시도해보자. #include void add(int a, int b) { int c; c = a + b; } int main() { int a; int b; a = 2; b = 3; add(a, b); print("%d", c); } 더하기 결과 출력을 함수 밖에서 하여도 컴파일 오류가 난다. main에 c가 선언.. 더보기
C언어 - 매개변수 #include void dan(int a) { int i; printf("%d\n", a); for (i = 1; i < 10; i = i++) { printf("%d * %d = %d\n", a, i, a * i); } } int main() { int j; for (j = 2; j < 10; j++) { dan(j); } } 지난 글에서 다룬 함수를 이용하여 2단에서 9단까지 출력하는 코드이다. 가장 먼저 의문을 가져봐야 할 점은 main은 int 타입이고 dan은 void 타입이라는 것이다. 함수 앞에 붙는 타입은 함수에서 반환(return)하는 값의 타입이다. (변수의 타입과 비슷하게 생각하면 되며 6일차 참고) https://reroot.tistory.com/12 C언어 6일차 #본격적인 프로.. 더보기