본문 바로가기

프로그래밍/C언어17

C언어 공부하기 - 배열 일차원 배열 지금까지 C언어에서 변수를 선언하고 사용한 예제에서는 변수 하나당 하나의 값만 사용할 수 있었습니다. 예를 들어 학생 5명의 성적을 다루는 프로그램을 짜려면 아래와 같이 변수를 5개 사용해야 합니다. 그리고 선언한 변수의 이름을 일일이 기억을 하고 있다가 해당 학생에 맞는 변수에 성적을 대입시켜야 합니다. 점수를 영어로 score라고 하니까 순서대로 1부터 5까지 번호를 붙여서 처리하면 별 문제가 없어 보입니다. 그런데 score4를 보면 선언을 할 때 오타가 났네요. 뭐 오타가 나면 컴파일러가 잡아주니까 수정을 하면 됩니다. 그런데.... short int score1; short int score2; short int socre3; short int socer4; short int soc.. 2020. 10. 5.
C언어 공부하기 - 스토리지클래스와 프로그램구조 스토리지클래스 스토리지클래스(Storage Class)는 C언어에서 변수나 함수등의 생명주기와 변수가 어느 범위에서 사용될 수 있는지 그리고 메모리에 어떻게 저장이 되는지에 대한 것을 C언어의 지시어로 설정하는 것입니다. 뭐 이렇게 쓰고나니 초보자가 이해하기는 쉽지 않을 것 같군요. 다음과 같은 예를 들어볼께요. #include void func1(); void main() { int i = 10; /* 자동변수 (또는 지역변수) */ func1(); printf("i = %d\n", i); } void func1() { int i = 9; /* 자동변수 (또는 지역변수) */ printf("i = %d\n", i); } PS C:\CS> .\test.exe i = 9 i = 10 main()함수와 fu.. 2020. 8. 19.
C언어 공부하기 - 함수(2) 파라미터와 리턴값 이전 시간에 함수 파라미터에 정수형 값을 넘겨주는 함수의 예제를 잠깐 봤는데요, 이번 시간에는 함수의 파라미터로 정수 아닌 자료형을 넘기고 리턴하는 함수를 알아볼께요. 지난 시간 예제로 들었던 add_int함수는 정수형 값을 두개 받아서 더한 후에 정수형 값을 반환하는 함수였는데요, 만약 실수형 값을 넘기고 그 합을 리턴하는 함수를 작성하려면 다음과 같이 해야 합니다. float add_float(float num1, float num2) { return (num1 + num2); } add_int와 달라진 점은 함수이름이 _int가 아닌 _float로 바뀌었다는 것과 함수 파라미터와 리턴값이 자료형이 int에서 float로 변경된 것입니다. 함수의 파라미터와 리턴값의 자료형(Data .. 2020. 8. 10.
C언어 공부하기 - 함수(1) 함수는 C언어에서 많은 작업들을 세분하거나 반복적인 코드들를 묶어서 공통의 흐름으로 묶어 처리하는 단위입니다. C언어에서 함수의 사용은 함수가 다른 함수를 호출하는 방식으로 동작을하고 여러개의 함수들의 묶음으로 큰 프로그램을 만들게 됩니다. C언어에서 함수를 작성하고 사용하는 능력을 키워 초급개발자에서 중급, 고급 개발자로 한걸음 나아가도록 합시다. 이번 파트에서는 표준입출력함수와 같이 시스템에서 이미 만들어져 제공되는 함수에 관한 내용이 아니라 사용자가 필요에 따라 함수를 정의하고 사용하는 내용을 다룹니다. 전자를 시스템 라이브러리 함수라고 하고 후자를 사용자 정의 함수라고 하겠고, 별도의 언급이 없는 한 함수를 작성한다고 하면 사용자 정의 함수에 관한 내용으로 이해하시길 바랍니다. 함수의 기초 함수를.. 2020. 8. 8.
C언어 공부하기 - 순환문(2) do~while, break, continue, goto 1. do~while 문 지난시간에 for문과 while문 등의 순환문에 대해 공부했습니다. for나 while문은 순환(Loop)의 종료 조건을 앞에서 검사를 하는데 반해, do~while문은 뒤에서 검사합니다. 그러므로 최소 1번은 수행이 됩니다. do { statement } while (expression); 일단 do~while문에 진입하여 statement를 수행한 후 expression을 검사합니다. 문법에서 주의할 점은 마지막에 세미콜론(;)이 붙는다는 점을 잊지 말아야 합니다. 예제로 조금 더 알아 보겠습니다. 아래 함수는 itoa라는 함수인데 정수형숫자를 문자배열로 바꿔주는 역할을 합니다. int itoa (int n, char s[]) { int i, sign; if ((sign = .. 2020. 7. 25.
C언어 공부하기 - 순환문(1) while, for 순환문(Loop)은 반복계산을 위해 사용되는데 대표적으로 while문과 for 문이 있습니다. 먼저 while문은 아래와 같은 형식으로 사용합니다. while (expression) statement expression을 계산하여 참이면 (= 0 이 아니면) statement를 수행하고 다시 expression을 계산을 반복을 합니다. 반면 for문은 다음과 같은 형식을 갖습니다. for (expr1; expr2; expr3) statement 위 구조의 for 문을 while문으로 동일하게 바꿔 보면 아래와 같습니다. expr1 while (expr2) { statement expr3 } for문의 세가지 expr1, expr2, expr3은 모두 수식이어야 하는데 한개 이상 생략을 할 수 있습니다. .. 2020. 7. 23.