본문 바로가기

BackEnd/C

if~else문 1. if문에 의한 조건적 실행 다음 코드를 보면 비효율적인 부분이 있다. 4개의 if문 중에서 하나만 만족이 되기 때문에 하나만 실행하고 나머지는 건너 뛰는것이 좋다. 그런데 아래는 모든 if문을 실행한다. 이를 해결하기 위해 if~else문을 알아보자 12345678910111213141516171819202122232425262728293031323334int main(void){ int num; printf("정수 입력: "); scanf("%d", &num); if(num=0 && num=10 && num=20) { printf("입력된 숫자는 20이상. \n"); return 0; } return 0; // 사실상 실행되지 않는 return문}Colored by Color Scriptercs ..
scanf함수를 이용한 정수와 실수의 입력 scanf 함수 123456789101112131415int main(void){ int n1; double n2; printf("정수 입력: "); scanf("%d", &n1); printf("실수 입력: "); scanf("%lf", &n2); printf("입력된 두 개의 데이터: %d, %f \n", n1, n2); return 0;}Colored by Color Scriptercs 1) scanf 함수에 대해 scanf함수의 %d는 키보드로부터 입력하는 값을 10진수 정수 int형으로 해석하겠다는 의미이다. 그리고 int형 변수 n1에 저장한다. int형 데이터의 입력은 %d, 출력은 %d 이다. double형 데이터의 입력은 %lf, 출력은 %f 이다. 2) scanf 함수와 printf함수..
함수와 관련된 기타 내용들 1. 자동형 변환 - 5행에서 전달인자와 function함수의 매개변수의 형이 일치하지 않아 자동형변환이 일어난다. - 14행에서 double형 상수를 반환하기때문에 int형으로 자동형변환이 일어난다. 123456789101112131415int function(int n); int main(void){ printf("반환 값: %d \n", function(5.67));//자동 형변환 return 0;} int function(int n){ printf("입력된 정수: %d \n", n); return 3.15;//자동 형변환}Colored by Color Scriptercs 2. 명시적 형변환 - 아래와 같이 명시적 형변환을 해주는 이유는 실수가 아닌 의도적인 구현임을 나타내준다. 1234567891..
함수의 선언과 정의 1. 잘못된 위치에 놓여있는 함수의 정의 - C프로그램은 위에서 아래로 컴파일이 진행된다. - 컴파일러가 컴파일 하지 않은 함수의 호출문에서는 에러가 발생한다. 위처럼 Increment함수를 호출할때, 메인함수를 먼저 컴파일하고 Increment함수를 컴파일했기 때문 에 에러가 발생한다. 즉 함수는 호출되기 이전에 정의 되어야 한다. 하지만 함수의 선언을 통해 이렇 게 위치를 바꾸지 않고도 에러가 발생하지 않을 수 있다. 2. 함수의 선언을 통해서 원하는 위치에 함수 정의하기 1234567891011121314151617181920212223int main(void){ int num = 2; int Increment(int n);/* Increment 함수의 선언 */ num = Increment(num..
다양한 함수의 예 1. 입력 또는 출력이 없는 함수 void는 없음을 의미한다. 매개변수 선언이나 함수의 반환형 선언에 올 수 있다. 123456789101112void ShowStarLine(void){ printf("***************** \n");} int main(void){ ShowStarLine(); return 0;}Colored by Color Scriptercs 2. 출력은 하나, 입력은 둘 이상 123456789101112131415int Add(int n1, int n2){ int result = n1 + n2; return result; } int main(void){ int addResult; addResult = Add(3, 5); printf("덧셈 결과: %d \n", addResul..
함수란 무엇인가? 1. 함수란 무엇인가? - 함수는 영어로 Fuction이다. 그리고 이는 "기능" 이라는 뜻을 지닌다. - c프로그램을 구성하는 독립적인 기능의 모듈(프로그램을 구성하는 소프트웨어의 부품) - c프로그램의 흐름은 연속된 함수의 호출로 형성 됨 2. 함수의 구성요소 - 함수의 이름- 함수의 입력- 함수의 출력(반환)- 함수의 기능(몸체) 3. 함수의 호출 - 한번 정의된 함수는 여러 번 호출될 수 있다. - 함수가 호출된 위치에 값이 반환된다. - main함수도 함수이다. main함수는 프로그램의 시작과 동시에 호출이 된다. 그리고 호출의 주 체는 운영체제이고, 반환되는 값은 운영체제로 넘어간다. 위는 Increment함수와 main함수를 보여준다. 4. 함수의 예 1234567891011121314151..
산술연산 과정에서 발생하는 형 변환의 규칙 형 변환의 우선순위 - 부등호 관계에서 왼쪽에 있는 것이 오른쪽 보다 우선순위가 높다.- 1순위가 가장 높은 우선순위의 그룹이다.- float형이 int형보다 우선순위가 높다. 따라서 int형 변수와 float형 변수를 더하면 int형 변수의 데이터가 float형으로 변환되어 덧셈 연산이 진행된다.- float형보다 double 형이 우선순위가 높다.- 정수형보다 실수형을 우선시한다.- 바이트수가 작은것보다 큰 것을 우선시한다.- unsigned를 우선시한다.- 위에서 char와 short가 없는 이유는 integer promotion이 발생하기 때문에 int형으로 변환되어 연산된다.
연산의 결과가 남기는것은? 1. lvalue 와 rvalue란? 우선 lvalue 와 rvalue에 대해 알아보자 1) lvalue 란? - left value의 줄임말이다. - 대입 연산자의 왼편에 올 수 있는 대상을 총칭하는 표현이다. - 즉 lvalue는 대입이 가능한 대상이어야 한다. - 대입 연산자의 왼편에 올 수 있는 가장 대표적인 대상은 변수이다. - 하지만 왼편에 올 수 있는 것으로 변수가 전부는 아니다. - 따라서 변수는 lvalue이지만 lvalue가 꼭 변수인것은 아니다. 2) rvalue 란? - right value의 줄임말이다. - 대입 연산자의 오른편에 올 수 있는 대상을 의미하며, lvalue의 상대적인 표현을 위해서 등장한 표현이다. 2. 연산자는 연산이 끝나고 무엇을 남길까? 연산자는 연산을 하고나..