본문 바로가기

primer plus

(11)
[c primer plus] chapter11 문자열과 문자열 함수 문자열(character string) 널 문자 (\0) 로 끝나는 char형 배열 배열과 포인터의 차이 char heart[] char *head 배열 이름 heart 는 상수 포인터 head 는 변수 head와 heart를 일치시키려고 할 때 head = heart; (o) heart = head; (x) 문자열 입력 읽을 문자열을 저장하기 위한 공간을 할당해야한다. char words[STRLEN]; gets() 개행 문자에 도달할 때까지 한 줄을 전부 읽고, 개행 문자를 제거하고 c 문자열을 만들기 위해 널 문자(\0)를 추가하여 남은 문자를 저장한다. gets(words); fgets() 파일 입출력 읽을 문자들의 최대 개수를 지정함으로써 두 번째 전달인자를 취할 떄 생길 수 있는 오버플로 문제..
[c primer plus] chapter10 배열과 포인터 배열(array) 동일한 하나의 데이터형을 가진 연속된 원소들로 구성된다. [] 배열이라는 것을 나타낸다. candy[0] 0은 인텍스(index)이다. 인덱스는 0부터 시작하다. 지정 초기화자(designated initializer) 초기화 리스트에서 각괄호 안에 인덱스를 사용하여 특정 원소를 초기화 하도록 지정할 수 있다. int arr[6] ={[5] = 212}; 포인터와 배열 포인터는 주소를 기호적으로 사용할 수 있는 방법을 제공한다. flizny == &flizny[0] flizny 와 &flizny[0] 둘다 첫번째 원소의 메모리 주소 대입하기 포인터에 주소 대입 값 구하기(역참조) *연산자는 그것이 참조하는 주소에 저장되어 있는 값을 구한다. 포인터 주소 얻기 포인터 변수는 하나의 주소와..
[c primer plus] chapter08 문자 입출력과 입력 유효성 검사 단일 문자 입출력 getchar() / putchar() 는 한 번에 한 문자씩 입출력을 수행한다. 버퍼 문자를 묶어서 전달하는 것이 하나씩 전달하는 것보다 시간을 적게 소모한다 잘못 타이핑했을 떼 키보드 기능을 사용하여 실수를 고칠 수 있다. 파일(file) 정보가 저장되어 있는 메모리의 영역이다. 사용자가 작성한 c 프로그램은 파일에 저장된다. 사용자의 c 프로그램을 컴파일하는 데 사용되는 프로그램들도 파일에 저장되어 있다. 저수준 입출력(low-level I/O) 어떤 수준에서는 운영체제가 제공하는 기본적인 파일 도구들을 사용하여 파일들을 처리할 수 있다. 표준 입출력 패키지(standard I/O package) 파일들을 처리하는 입출력 함수들의 표준 집합과 표준 모델을 만드는 것이 포함된다. 스..
[c primer plus] chapter09 함수 함수(function) 하나의 특정 작업을 수행하도록 독립적으로 설계된 프로그램 코드의 한 단위 strarbar() 가 어떤 유형의 함수인지 컴파일러에게 알려 주는 함수 프로토타입(function prototype) 그 함수를 실행되게 만드는 함수 호출(function call) 그 함수가 무엇을 하는 것인지 정확하게 서술하고 있는 함수 정의(function definition) 프로그램은 starbar() 의 함수 프로토타입을 main()앞에 놓는다. void show_n_char(char ch, int num) 두 변수 ch 와 num 을 '형식전달인자(formal argument)' 또는 '형식매개변수(formal parameter)'라고 부른다. 실전달인자(actual argument) 실전달인자..
[c primer plus] chapter07 C의 제어문: 분기와 점프 if문 if(expression) statement1 else statement2 getchar() / putchar() 문자 입출력 ch = getchar(); -> scanf("%c", &ch); putchar(ch); -> prinff("%c", ch); 논리 연산자 && ( 논리곱 AND ) || ( 논리합 OR ) ! ( 논리부정 NOT ) 조건 연산자 ?: expression1 ? expression2 : expression3 expression1 부분이 참이면(0이 아니면) 전체 조건 표현식은 expression2 부분과 같은 값을 가진다 expression1 부분이 거짓이면(0이면) 전체 조건 표현식은 expression3 부분과 같은 값을 가진다. continue문 continue문을 만..
[c primer plus] chapter05 연산자, 표현식, 문장 덧셈 연산자(addition operator) + 뺄셈 연산자(subtraction operator) - 곱셈 연산자(multiplication operator) * 나눗셈 연산자 / 소수부는 버림 '같다' = 나머지 연산자(modulus operator) % 대입 연산자(assignment operator) =(같다x) 증가 연산자(increment operator) / 감소 연산자(decrement operator) ++ / -- 전위(prefix)모드 : 피연산자 앞 ++a; 후위(postfix)모드 : 피연산자 뒤 a++; 부호 연산자 +, - sizeof 연산자 피연산자의 크기를 바이트 단위로 리턴한다. size_t 형 부호 없는 정수형 데이터형 변환 올림 변환(promotion) 더 큰 데이터..
[c primer plus] chapter04 문자열과 입출력 포맷 문자열은 맨 뒤에 '\0'이 있다. sizeof() 메모리 크기를 바이트 수로 strlen() 문자열의 크기를 문자 수로 에 포함되어 있는 함수 limits.h 와 float.h는 정수형과 부동소수점형의 크기 제한에 관련된 자세한 정보를 각각 제공한다. _BIT 비트 수 _MAX 최대값 _MIN 최소값 형식 지정자 int / %d char / %c float , double / %f string / %s 형식 지정자와 데이터형이 일치해야한다. 화이트스페이스(whitespace) 스페이스, 탭, 개행 snacf()는 연속된 입력 항목들을 구분하기 위해 화이트스페이스를 사용한다.
[c primer plus] chapter03 데이터와 C 데이터형 int(4byte), long(8byte), long long(8byte), short, unsigned, char(1byte), float(4byte), double(8byte), long double(16byte), signed, _Bool, _Complex, _Imaginary 정수형 소수부x int 부동소수점형 소수부(fractional part)와 정수부(exponent part)로 나누어 저장한다. 정수보다 훨씬 큰 범위의 수를 나타낼 수 있다. float / double / long double 부호 있는 / 부호 없는 signed unsigned