본문 바로가기

전체 글293

[C] 변수 변수 : 이름, 타입, 크기, 값 + 범위, 생존 시간, 연결 - 범위(scope) : 변수가 사용 가능한 범위, 가시성 - 생존 기간(lifetime) : 메모리에 존재하는 시간 1) 정적 할당(static allocation) : 프로그램이 실행되는 동안 유지 ex) 전역 변수 2) 자동 할당 (automatic allocation) : 선언된 블록이 종료되면 같이 소멸 * 지역 변수는 기본이 '자동 할당' 이지만 저장 유형 지정자를 통해 정적 할당에 사용 가능 - 연결(linkage) : 다른 영역에 있는 변수와 연결 상태 변수의 범위 : 전역 변수 & 지역 변수 - 전역 변수 : 함수 밖에 존재하는 변수로, 사용 범위는 '소스 파일 전체' 이다. * 전역 변수를 너무 많이 쓰면 코드가 '스파게티'.. 2021. 3. 8.
[C] 예제 (함수, 포인터, 구조체) 구조체 활용 예제 #include int add(int x, int y); int sub(int x, int y); struct Calc{ int (*fp)(int, int); }; int main(void){ struct Calc c; c.fp = add; printf("%d", c.fp(10, 20) ); return 0; } int add(int x, int y){ return x+y; } int sub(int x, int y){ return x-y; } 2021. 3. 5.
[C] 예제 (매개변수 포인터) 매개변수를 함수 포인터로 이용한 예제 #include int add(int num_1, int num_2); void executer (int (*fp)(int, int) ); int main(){ executer(add);// executer 를 호출할 때 add 함수의 메모리 주소를 전달 return 0; } int add(int num_1, int num_2){// int형 반환값, int형 매개변수 2개 return num_1 + num_2; } void executer (int (*fp)(int, int) ){// 매개변수가 함수 포인터가 될 수 있음 printf("%d\n", fp(10, 20) );// 매개변수로 함수 호출 } 2021. 3. 5.
[C] 예제 - 계산기 제작 (함수, 포인터, 배열) 함수, 포인터, 배열을 이용해 +, -, *, /, % 연산을 이용해 입력된 두 숫자를 계산하는 계산기를 만드시오 #include //계산기 int add(int x, int y); int sub(int x, int y); int mul(int x, int y); int div(int x, int y); int rem(int x, int y); int main(){ int num_1, num_2; int mrk; printf("첫번째 값을 입력해주세요 : "); scanf("%d", &num_1); printf("연산자를 선택하세요 : \n(1)+ (2)- (3)* (4)/ (5)%%\n"); scanf("%d", &mrk); printf("두번째 값을 입력하세요 : "); scanf("%d", &num.. 2021. 3. 5.
[C] 예제 - 계산기 제작 (함수, 포인터) 함수와 포인터를 이용해 +, -, *, /, % 연산을 이용해 입력된 두 숫자를 계산하는 계산기를 만드시오 #include //계산기 int add(int x, int y); int sub(int x, int y); int mul(int x, int y); int div(int x, int y); int rem(int x, int y); int main(){ int num_1, num_2; char mrk;//문자형으로 받을 땐 char 주의 printf("첫번째 값을 입력해주세요 : "); scanf("%d", &num_1); printf("연산자 +, -, *, /, %% 중 쓸 기호를 입력하세요 : "); scanf(" %c", &mrk);// 문자를 입력받을 시 '%c' 에서 스페이스바 하나를 넣.. 2021. 3. 5.
[C] 예제 (함수, 포인터) 함수 포인터 예제 #include void hello(int num_1, int num_2){ printf("\n"); printf("hello~\n"); } void hi(int num_3, int num_4){ printf("hi~~~~"); } int main(void){ void (*fp)(int, int);//함수 포인터 hello(0, 0); hi(0, 0); fp = hello; fp(1, 2);//hello(); fp = hi; fp(3, 4); return 0; } 포인터에서는 함수 원형의 '반환값(void)', '매개변수 갯수(2개)', '자료형(int)' 가 모두 같아야 한다. 2021. 3. 5.
[C] 예제 - 소수 판별 (함수 이용) 숫자를 입력하였을 때 그 숫자가 소수인지 아닌지 판별하는 프로그램을 만드시오 #include #include void find_prime(int a); int main(){ int number = 0; printf("정수를 입력하세요 : "); scanf("%d", &number); find_prime(number); return 0; } void find_prime(int a){ int i; int count = 0; for(i=1; i 2021. 3. 5.
[C] 예제 - 계산기 제작 (함수 이용) 함수 형식으로 2개의 수를 입력 받아 +, -, *, /, % 의 연산이 가능한 계산기 프로그램을 제작하시오 #include //계산기 int add(int, int); int sub(int, int); int mul(int, int); int div(int, int); int rem(int, int); int main(){ int num_1, num_2; int result; char mrk;//문자형으로 받을 땐 char 주의 printf("첫번째 값을 입력해주세요 : "); scanf("%d", &num_1); printf("연산자 +, -, *, /, %% 중 쓸 기호를 입력하세요 : "); scanf(" %c", &mrk);// 문자를 입력받을 시 '%c' 에서 스페이스바 하나를 넣어 ' %c'.. 2021. 3. 5.