본문 바로가기

공부/c언어16

21 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 운영체제는 외부장치와 프로그램과의 데이터 송수신의 도구가 되는 스트림을 제공하고 있다. 콘솔 입출력을 위한 '입력 스트림'과 '출력 스트림'은 프로그램이 실행되면 자동으로 생성되고, 프로그램이 종료되면 자동으로 소멸되는 스트림이다. 문자 출력 함수 : putchar, fputc 문자 입력 함수 : getchar, fgetc 문자열 출력 함수 : puts, fputs 문자열 입력 함수 : gets, fgets 하나가 작은 길이의 문자열이 저장되는 이유는 문자열을 입력받으면 문자열의 끝에 자동으로 널 문자가 추가되기 때문이다. fgets 함수는 \n을 만날 때까지 읽어 들이는 함수 출력버퍼를 비우는.. 2023. 7. 7.
16 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 TYPE arr[세로길이][가로길이]; 2차원 배열을 선언과 동시에 초기화하는 경우에는 배열의 세로길이만 생략이 가능하다. 2차원 배열 선언 TYPE arr[세로길이][가로길이]; 2차원 배열도 메모리상에는 1차원의 형태로 존재한다. 2차원 배열을 선언과 동시에 초기화하는 경우에는 배열의 세로길이만 생략이 가능하다. 3차원 배열 선언 int arr[1][2][3]; //높이 1, 세로 2, 가로 3 3차원 배열은 여러 개의 2차원 배열이 모여있는 형태로 이해하는 것이 더 합리적이다. 2023. 6. 2.
14 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 함수호출 시 전달되는 인자의 값은 매개변수에 복사가 된다. 값을 전달하는 형태의 함수호출 : Call-by-value 주소 값을 전달하는 형태의 함수호출 : Call-by-reference 포인터 변수가 참조하는 대상의 변경을 허용하지 않는 const 선언 "함수호출 시 전달되는 인자의 값은 매개변수에 복사가 된다." 주소 값만 알면 해당 메모리 공간에 얼마든지 접근 가능 int param[]과 int * param은 완전히 동일한 선언이다. 함수 내에서는 인자로 전달된 배열의 길이를 계산할 수 없다. 구분 기준 : 함수의 인자로 전달되는 대상 값을 전달하는 형태의 함수호출 : Call-by-v.. 2023. 5. 19.
13 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 1. 배열의 이름(상수 형태의 포인터)은 배열의 시작 주소 값을 의미하며, 그 형태는 값의 저장이 불가능한 상수이다. 2. TYPE형 포인터를 대상으로 n의 크기만큼 값을 증가 및 감소 시, n * sizeof(TYPE)의 크기만큼 주소 값이 증가 및 감소합니다. 3. 변수 형태의 문자열, 상수 형태의 문자열 4. 큰따옴표로 묶여서 표현되는 문자열은 그 형태에 상관없이 메모리 공간에 저장된 후 그 주소 값이 반환된다. 배열의 이름은 상수 형태의 포인터이다. 따라서 * 연산도 가능 서식문자 %p : 주소 값의 출력 배열의 이름은 대입 연산자의 피연산자가 될 수 없다.(값의 저장이 불가능) 동일한 .. 2023. 5. 12.
12 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 C언어에서는 시작번지만을 가지고 위치를 표현한다. 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다. 포인터 변수 선언 type * ptr; //type형 변수의 주소 값을 저장하는 포인터 변수 ptr의 선언 & 연산자 : 피연산자의 주소 값을 반환 * 연산자 : 포인터가 가리키는 메모리 공간에 접근 포인터의 형이 존재하는 이유는 포인터 기반의 메모리 접근기준을 마련하기 위함이다. 포인터 변수에는 메모리의 주소 값이 저장되고, 이를 이용해서 해당 메모리 공간에 접근도 가능하다. int * ptr1 = 0; //아무 데도 가리키지 않는다. 포인터 : 메모리에 직접 접근 포인터 변수 : 메모.. 2023. 5. 5.
11 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 배열 한 번에 많은 수의 변수를 선언 다수의 데이터를 저장하고 처리하는 경우에 유용 1차원 구조의 배열 선언 : 자료형, 배열이름, 길이정보(가급적 상수) 배열의 위치 정보를 명시하는 인덱스 값은 1이 아닌 0에서부터 시작한다. 채울 값이 존재하지 않는 요소들은 0으로 채워진다. 배열의 이름을 대상으로 하는 sizeof 연산의 결과로는 '바이트 단위의 배열 크기'가 반환된다. 문자열의 저장을 목적으로 char형 배열을 선언할 경우에는 특수문자 '\0'이 저장될 공간까지 고려해서 배열의 길이를 결정해야 한다. 아스키코드 값 널 문자 : 0 공백 문자 : 32 scanf 함수 호출문 구성 시, 데이.. 2023. 4. 28.
10 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 문제풀이 2023. 4. 21.
09 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 [1] 함수 값이 반환된다는 것은 함수의 호출문이 반환 값으로 대체되는 것으로 이해할 수 있다. 다양한 형태의 함수 정의 1. 전달인자와 반환 값이 모두 있는 경우 2. 전달인자나 반환 값이 존재하지 않는 경우 ex) void suyeon27(void) // 인자전달 X, 반환 값 X : void는 '인자를 전달하지 않는다.', '반환하지 않는다.'라는 뜻이 담겨있다. return이 지니는 2가지 의미 중 1가지 의미만 살리기 1. 함수를 빠져나간다. 2. 값을 반환한다. 함수는 호출되기 전에 미리 정의되어야 한다. main을 포함한 모든 함수는 조건 및 상황에 관계없이 다른 함수를 호출할 수 .. 2023. 4. 14.
08 출처 : 윤성우. 윤성우의 열혈 C 프로그래밍. 오렌지미디어, 2010. 몰랐던 or 까먹었던 내용 위주 정리 분기를 통해 프로그램의 흐름을 원하는 형태로 컨트롤 "조건을 만족하는 if문이 발견되면 나머지 if문은 건너뜁니다." if문은 몇 줄에 걸쳐서 표현되건 하나의 문장으로 인식된다. { 코드 읽기 쉽도록 } 1. 조건 연산자 ex) (num1>num2) ? (num1) : (num2); => (조건) ? (참) : (거짓); 2. while문 break : 가장 가까이서 감싸고 있는 반복문 하나를 빠져 나오게 된다. continue : 조건 검사 이동 3. switch문 ex) switch(n) { case 1: printf("*"); printf("**"); break; //탈출 case 2: p.. 2023. 4. 7.