c 18

static 변수

static 변수란? 단 한번만 초기화하고, 그 이후에는 전역변수처럼 프로그램이 종료될 때까지 메모리 공간에 존재하는 변수 초기값이 지정이 안되면 자동으로 0이 대입 지역 변수 사용 void test(){ int a = 10; a++; printf("%d", a); // test 함수를 두번 수행한 결과 11 11 이 출력됨 } void main(){ test(); test(); } static 변수 사용 void test(){ static int a = 10; a++; printf("%d", a); // 첫번째 test 함수를 수행한 결과인 11이 초기화 되지 않으므로 두번째 결과는 12 가 출력됨 } void main(){ test(); test(); } #include void funCount();..

C 2023.04.11

함수에 주소 전달/리턴, 함수와 변수의 유효범위

함수에 주소 전달 #include int main(void){ int x = 10, y = 20; printf("%d", f(&x, y)); // f 함수에서 리턴된 51 출력 printf("%d %d\n", x, y); } int f(int *i, int j){ // *i = x의 주소값, j = y 값을 대입 *i += 5; // *i = *i+5, *i는 x의 주소값이므로 10+5 return(2 * *i + ++j); // 2*15 + (20+1) 이므로 51 이 리턴 } 함수와 변수의 유효 범위 include int a = 1, b = 2, c = 3; // 전역 변수 int f(void); int main(void){ // f 함수의 결과로 12가 리턴됨 printf("%3d\n", f());..

C 2023.04.11

[문제 & 풀이] 정보처리기사 실기 족보_1

1. 다음은 C언어 코드이다. 출력 결과를 쓰시오. #include struct SOOJEBI_STRUCT { int n; char c; }; int main() { // 구조체 변수 s 선언 struct SOOJEBI_STRUCT s; // 구조체 'struct SOOJEBI_STRUCT' 사이즈 8 출력 printf("%1d", sizeof(struct SOOJEBI_STRUCT)); // 구조체 변수 s 사이즈 출력 printf("%1d", sizeof(s)); return 0; } ▷ 88 구조체를 정의한 후, 구조체 변수 s를 선언했다. 그 다음 구조체와 구조체 변수 s의 사이즈를 출력한다. 2. 다음 직원 테이블이 있다. [조건]에 맞도록 SQL 문을 작성하시오. [조건] 테이블 명은 직원이다..

정보처리기사 2023.04.11

함수, 반복문

함수란? 반복적인 수행을 정의해 놓은 작은 프로그램 단위 함수 구조 반환타입 함수명(인자들...){ 수행할 작업1 수행할 작업2 } 함수 선언과 사용 in sum(int a, int b) { int c = a + b; return c; } int data = sum(10, 20); // 10, 20을 a, b에 대입하므로 10 + 20 printf("%d", data); // 30이 출력됨 #include void swap(int a, int b){ // 두 개의 변수를 바꿔주기 위해 사용하는 알고리즘 int temp; temp = a; a = b; b = temp; } int main(void){ int k, j; k = 3; j = 2; swap(k, j); // swap 함수로 가서 수행 print..

C 2023.04.06

배열 포인터

배열 포인터란? 배열의 시작 주소값을 저장할 수 있는 포인터 3차원 배열의 구조 그냥 하나의 포인터일뿐..! int(*in)[2]; // in 이라는 2차원 배열을 2개씩 나누어서 만듦 int num[3] = {1, 2, 3}; in = num; printf("%d\n", in); // 100 printf("%d\n", num); // 100 printf("%d\n", *in); // 100 printf("%d\n", **in); // 1 printf("%d\n", *(*in+1); // 2 printf("%d\n", *(*in+2); // 3 printf("%d\n", *in[1]); // 3 int(*in)[4]; int num[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; in ..

C 2023.04.05

구조체, 포인터 이동

구조체란? 여러 변수들을 모아서, 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체 구조체 구성 struct 구조체명 { 멤버변수 1; 멤버변수 2; }; 구조체 정의 및 사용 struct person { char *name; int age; }; struct person user1; user1.name = "h user"; printf("%s", user1.name); struct person { char *name; int age; }test; test.name = "h user"; test.age = 40; printf("%s : %d", test.name, test.age); struct person { char *name; int age; }; struct person *p; p -> n..

C 2023.04.05

포인터 배열

포인터 배열 배열의 요소가 포인터(메모리주소)로 이루어진 것 일반 배열 char a[3] = {'a', 'b', 'c'}; printf("%s\n", a); // %s는 문자열을 출력하므로 abc 출력 char *str = "Hello"; printf("%s\n", str); // Hello 출력 포인터 배열 char *student[3] = {"aaa", "bbb", "ccc"}; // 포인터를 배열로 만들면 주소값이 들어감 #include int main(){ static char *c[] = {"aaa", "bbb", "ccc"}; printf("%s", *(c+1)); // 100+1 = 101 의 주소값이므로 bbb가 출력됨 } #include int main(){ char *array1[2] ..

C 2023.04.04

1차원, 2차원 배열과 포인터

배열과 포인터의 관계 int a[5]; // a라는 배열 0~4까지 생성 int*b = a; // 포인터 변수 b는 a의 주소값 a[2] = 10; // 배열 a[2]의 값은 10 b[2] = 20; // 포인터 변수 두번째 공간이므로 배열 a[2]의 값이 20 #include int main(void){ int i; int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; // 배열로 나열 int *ptr = a + 3; // ptr의 값은 a의 주소값 100 + 3 for(i = 0; i < 5; ++i){ // i값이 5보다 작을 때까지 아래 괄호문 수행 printf("%d", *(ptr+i)-3); // 괄호안의 ptr+i 를 먼저 수행한 다음 가리키는 값 대..

C 2023.04.03

배열, 포인터, scanf

배열이란? 같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간 배열의 선언 int a [5]; ※ a[6] 은 없기 때문에 오류가 난다. 이차원 배열 같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 것 void main(){ char msg[50] = "Hello World! God Luck!"; int i = 2, number = 0; while(msg[i] != '!'){ // !와 같은 값이 나올때까지 반복 if(msg[i] == e'a' || msg[i] == 'e' || msg[i] == 'i' || msg[i] == 'o' || msg[i] == 'u') number++; // if문이 참일때 수행함 i++; // if문이 거짓일때 수행함 } printf("%d", number);..

C 2023.03.28