목록C (65)
개인노트
다음은 입력하는 값을 누적하여 합계를 출력하는 예제이다.다음에서 사용된 전역변수 total을 static 변수로 대체하여보자.단, 대체 과정에서 main 함수의 변경은 없어야 하며 실행 결과도 동일해야 한다. #include #include "stdlib.h" int total = 0; int AddToTal(int num){total += num;return total;} int main(void){int num, i;for (i = 0; i Source.c #include #include "stdl..
[ 지역변수에 static 선언을 할 경우 ] 원래 지역변수의 특성은 다음과 같다.1. 선언된 함수 내에서만 접근이 가능하다.2. 함수 내에 선언된 지역변수는 해당 함수가 반환하면 소멸된다. 하지만 지역변수에 static이 붙게 되면 특성은 다음과 같아진다.1. 선언된 함수 내에서만 접근이 가능하다.2. 딱 1회만 초기화 되고 프로그램 종료 시까지 메모리 에 남는다. static이 붙으면 위와 같이 지역변수와 전역변수의 특성을 둘다 보유하게 된다.static변수는 접근 범위를 제한하고 프로그램이 종료될 때 까지 메모리공간에 남아있게 해준다. Source.c #include #include "stdlib.h" void simple(void){static int num1 = 0;int num2 = 0;num..
지역변수 ( Local Variable ) 1. 지역변수의 지역은 중괄호의 영역을 뜻한다.2. 중괄호 내에 선언되는 변수는 모두 지역변수라고 할 수 있다.3. 선언된 지역( 중괄호 ) 내에서만 유요한 성질을 가지고 있다.4. 해당 지역을 벗어나면 자동 소멸된다.5. 선언된 지역 내에서만 유효하기 때문에 지역이 다르면 변수 이름이 같아도 된다.6. 반복문이나 조건문에도 중괄호 안에 선언되면 지역변수로 인지된다. 전역변수 ( Global Variable ) 1. 프로그램 시작과 동시에 메모리에 할당 되며 종료시까지 존재한다.2. 초기화 하지 않으면 0으로 초기화 된다.3. 영역 어디서든 접근 가능하다.4. 전역변수와 지역변수의 이름이 같다면 전역변수대신 지역변수가 사용된다. #include #include ..
1. 세 개의 정수를 인자로 전달받아서 그 중 가장 큰 수를 반환하는 함수와 가장 작은 수를 반환하는 함수를 정의하고 출력해라. Source.c #include #include "stdlib.h" int HIGH(int a, int b, int c);int LOW(int a, int b, int c); int main(void){int a, b, c;printf(" 세 개의 수를 입력하시오 : ");scanf_s("%d %d %d", &a, &b, &c);printf(" 입력한 수는 %d, %d, %d 이고 \n 가장 큰 수는 %d \n 가장 작은 수는 %d 입니다.\n",a, b, c, HIGH(a, b, c), LOW(a, b, c));system("pause");} int HIGH(int a, in..
C언어를 공부하던 도중 디버깅을 하면 도스창이 나오지 않을 때가 있어서 해결 방법을 몇가지 알아보았다.. 1. 솔루션 탐색기에서 마우스 우클릭 → 속성으로 들어간다. 링커 → 하위시스템 ( 콘솔 ) 위의 그림과 같이 설정해 주면 된다. 2. 소스 코드에 return 0; 값 대신 getchar();로 바꿔준다.왜 이렇게 되는지 원리나 이유 같은건 모르겠다.return 0; → getchar(); 3. 소스코드에 system("pause"); 추가 system("pause");를 사용하기 위해서는 라이브러리가 필요하다.#include "stdlib.h"도 추가해 준다.
* goto 문은 말 그대로 해당 레이블로 이동하는 구문이다. * #include int main(void) {int num;printf("1 ~ 3 사이의 수를 입력하세요.\n");scanf_s("%d", &num); if (num == 1)goto one;else if (num == 2)goto two;else if (num == 3)goto three;elsegoto other; one:printf("입력한 수는 1 입니다.");goto end;two:printf("입력한 수는 2 입니다.");goto end;three:printf("입력한 수는 3 입니다.");goto end;other:printf("1 ~ 3 사이의 수만 입력하세요.");goto end;end: getchar();getchar(..
#include int main() {char word;printf("철자를 입력하시오.\n");scanf_s("%c", &word); switch (word){case 'A':case 'a':printf("Apple");break;case 'B':case 'b':printf("Banana");break;case 'C':case 'c':printf("Cold");break;default:printf("what??");}getchar();getchar();}
#include int main() {int num;printf("1 이상 3 이하의 정수를 입력하시오.\n");scanf_s("%d", &num); switch (num){case 1:printf("당신이 입력한 수는 %d 입니다.\n", num);break;case 2:printf("당신이 입력한 수는 %d 입니다.\n", num);break;case 3:printf("당신이 입력한 수는 %d 입니다.\n", num);break;default:printf("1에서 3까지의 수만 입력하라고 했자나!!!!");}getchar();getchar();} num에 입력한 값의 정보와 일치하는 영역을 수행하게 된다. #include int main() {int num;printf("1 이상 3 이하의 정수를 입..
1. Break Break문을 감싸고 있는 반복문 중에서 가장 가까운 반복문을 한번 빠져나온다. 2. Continue 실행중인 코드의 위치에 상관 없이 반복문의 조건검사 부분으로 이동하여 다시 조건검사를 실행한다. while (dan