2020. 9. 10. 16:48ㆍ컴퓨터언어
scanf()
scanf()에서 서식을 %2d처럼 지정하면 앞에서부터 2글자만 저장된다. %3f이면 "소수점포함"해서 앞에서 3개이다.
&c이면 맨앞글자만 저장한다.
배열은 일반 변수와 달리 배열의 이름 자체가 배열의 첫 원소의 시작주소를 나타내므로, &가 필요없다.
&s이면 하나의 단어를 저장한다. 즉 공백이 나타나기 전까지다.
한번에 두 개 이상의 변수에 입력한다면(scanf에 서식문자가 2개 이상), 공백을 기준으로 변수가 나뉜다.
단정도 실수형이든 배정도 실수형이든, scanf로 입력할 때는 모두 2진수 부동소수점 방식이어서 %f든 %e든 상관없다. 출력때만 제대로 구분하면 된다.
%c : 맨앞 1글자만 저장
%10c : 앞에서부터 10글자를 모두 저장
%c %3c : 맨앞 1글자 + 맨앞1글자이후부터 연속3글자 모두 저장
123456처럼 하나의 수가 입력되고, "%2d %3f"가 서식으로 지정되면, 12와 345가 차례로 저장된다.
여러 서식지정자 사이에 $$같은 문자가 있다면, 입력 시 $$를 기준으로 서로 다른 변수에 저장된다.
printf()
\r: carriage return, 커서를 현재 줄의 처음으로 이동
\f: form feed, 한 페이지를 넘김
scanf와 달리 변수의 데이터가 서식문자열을 초과하면 초과한대로 출력된다.
%f, %e는 자릿수지정 따로 안해주면 기본적으로 "소수점 이하 6자리"만 출력한다. 남은 자리는 0으로 출력.
-없으면 오른쪽정렬된다.
%.3f이면 소수점 이하 4번째자리에서 반올림하여 3번째자리까지 나타낸다.
출력시 지수형은 x.xxxxxxe±01 형태이다.
%.3s : 왼쪽에서부터 3글자를 모두 출력
%3s : 우선 메모리에 3글자 자리를 확보하되, 해당 문자열이 3글자를 초과하면 서식을 무시하고 모두 출력
%e를 %f로 변환할 때 먼저 e±로 된 소수점 자리를 변환할 것
입력 후 출력할 때, 123456을 i, j로 연속된 변수로의 입력은 12/3456처럼 쪼개짐을 기억하라.
연산자
증감연산자가 섞여있다면, 식 안에 있는 그 변수는 모두 업데이트 된다.
맨 왼쪽 비트가 1이면 2의 보수를 실행한다. 2의 보수로 구한 양수에 최종적으로 마이너스를 붙이면 정답이다.
~는 비트연산자에서의 부정, !은 논리연산자에서의 부정이다.
대입연산자가 여러 개이면, 오른쪽부터 계산한다.
단항 -> 산술 -> 시프트 -> 관계(대소->같은지다른지) -> 비트(&->^->|) -> 논리 -> 조건 -> 대입(대입끼리는오른쪽부터) -> 순서(쉼표)
삼항연산자에서 조건식은 후치증감연산자의 영향을 받고, ":" 좌우에 있는 수식은 영향을 받지 않는다.
'컴퓨터언어' 카테고리의 다른 글
정보처리기사 실기 공부log - 20200912 (0) | 2020.09.12 |
---|---|
정보처리기사 실기 공부log - 20200911 (0) | 2020.09.12 |
2020개정 정보처리기사 필기 시험 전날 최종체크 (0) | 2020.08.21 |
[2020 개정 정보처리기사] 오답같지만 사실 정답인 것들의 모음 (0) | 2020.08.13 |
[Git] 헷갈리는 merge, rebase, cherry-pick 정리 (0) | 2020.04.17 |