4.1 문자열 출력하기
"char 변수명" -> 글자 1개만 저장가능
뒤에 대괄호[]를 써서 저장공간을 더 확보 가능
(실제 변수자체가 더 큰 용량을 갖는 변수자체가 되는 것 아니라 추가로 지정한 크기만큼의 주소의 위치를 알려주는 것)
또한 scanf 에서 %c -> %s로 바꿔야 하며 &는 쓸이유가 없다.
4.2 sizeof 연산자
sizeof 연산자는 자료형이 차지하는 메모리크기를 알려 줌.
문자열 배열과 포인터의 사이즈는 다르게 표시된다는 점에 주의
size_t는 sizeof 연산자에서 리턴되는것이며 size_t 타입의 형식지정자는 %zu로 사용한다.
4.3 문자열이 메모리에 저장되는 구조
문자열은 문자가 어디서 끝나는지를 표기하기 위해서 실제로는 '\0'이 한개 담겨있다는점에 주의
배열에 설정한 메모리크기보다 더 큰 주소에 접근하려면 에러가 뜬다.
문자열크기보다 작은 크기를 지정하면 오류가 발생함
문자열 중간에 Null character(\0)를 넣으면 거기까지만 출력됨. 다만 메모리에는 여전히 담겨있음
4.4 strlen() 함수
전처리기에 <string.h>포함 해줘야함
strlen 함수는 Null character는 세지않고 사용자가 입력한 문자의 크기만을 반환
빈칸과 Null character는 다른것임에 주의
char str2[] = "Hello"; 처럼 배열크기를 지정안하면 컴파일러가 알아서 크기를 지정해준다.
4.5 기호적 상수와 전처리기
자주사용하는 것은 전처리기에 #define으로 기호적상수로 선언해두거나 또는 const 로 변수를 선언하면 편하다.
4.6 명백한 상수들(manifest constant)
기호적상수를 manifest constants 라고도 한다.
4.7 printf()함수의 변환 지정자들
%c 쓸때 작은따옴표 써야하는점에 주의 (stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c-or-c)
필요한 변환 지정자는 그때그때 찾아서 쓸것
4.8 변환지정자의 수식어들
변환지정자의 출력을 바꿔줄 수 있는것
필요한 내용은강의와 링크를 참조:www.cplusplus.com/reference/cstdio/printf/
printf - C++ Reference
function printf int printf ( const char * format, ... ); Print formatted data to stdout Writes the C string pointed by format to the standard output (stdout). If format includes format specifiers (subsequences beginning with %), the additional arg
www.cplusplus.com
4.9 printf() 함수가 인자(arguments)들을 해석하는 과정
printf()에서는 float가 들어오면 double(8바이트)로 변환한다.
이후 메모리에 스택형태로 쌓이기 시작.
따라서 %d (4바이트) 로 출력을하려하면 4바이트만 읽어오기때문에 문제 발생.
4.10 scanf() 함수의 사용법
형식지정자는 printf와 비슷한 것이 많다.
Modifier는 이하의 표를 참조
문자열을 콘솔창에서 입력할때 빈칸으로 구분지으면 빈칸이후의 데이터는 무시되어버리는 점에 주의
printf에서는 double 출력할때 %f를 쓰면 되지만 scanf에서는 %lf를 써야 한다는점을 주의
'TIL > 따배씨' 카테고리의 다른 글
반복문(2021-01-08 ~ 2021-01-09) (0) | 2021.01.08 |
---|---|
연산자, 표현식, 문장 (2021-01-07) (0) | 2021.01.07 |
데이터와 C언어 (2021-01-04) (0) | 2021.01.04 |
C언어의 소개 (2021-01-03) (0) | 2021.01.03 |
C 언어의 시작 (2021-01-02) (0) | 2021.01.02 |
댓글