※ 입출력 방식

scanf("%d", &num); // 입력
printf("%d", num); // 출력

이때, 입력의 &num은 변수 num에 입력한 내용을 저장한다는 뜻이며

printf에서는 num에 저장된 입력값을 출력한다는 뜻이다.

 

물론 %d이외에 다른 방법으로도 입력받을 data type을 정할 수 있다.

%d // 부호가 있는 "10진수 정수" (int, short, char)
%c // 값에 대응하는 "문자" (char, int, short)
%s // "문자열" (char*)
%p // "포인터 주소값" (void*)

이때, char는 정수형임을 주의!

char는 문자형처럼 보이지만 "실제로는 char형 변수에 저장되는 것은 정수이다."

 

※ 복합대입연산자

a += b  // a = a + b
        // b가 1이면 a++로도 사용

l-value에 저장하는 것! (l-value: https://chan4im.tistory.com/11)

 

this.code(1)_ C++, based by C

※ C++의 입출력 연산자, [>>, (istream&, Coord&);와 ostream& operator (b) ? (a) : (b)) ... int x = 5, y = 0; CALL_MAX(++x, y); // a가 2번 증가 CALL_MAX(++x, y+10); // a가 1번 증가 위의 경우, (++a>b) ? ++a : b 로 해석되기에 a가 2

chan4im.tistory.com

 

 

※ 전위, 후위 증감연산자

전위연산: ++a // a값 1 증가 후 실행         [선증가, 후연산]
후위연산: a++ // 속한문장 진행 후 값 1증가   [선연산, 후증가]

즉, 후위연산의 경우 "다음문장으로 넘어가야만!" 비로소 증감연산이 실행된다.

int a = 5;
a++; // 여기서는 아직 a값은 5
printf("%d", a); // 여기서의 a값은 6이됨

 

 

※ NOT 연산자 (with if문)

a가 3의 배수라면? 과 관련된 코드이다.

if (a%3 == 0)
if (!(a%3))

위의 둘은 같은 뜻인데, if(!(a%3))의 경우 생소할 수 있다. 이에 대한 풀이는 아래와 같다,

a가 3의 배수일 떼 => a%3 == 0 즉, 0이 나온다.
if (!0) 즉, 0(거짓)이 아님이란 뜻으로
if (true)와 같은 뜻이다.

 

 

※ main문의 구조와 return 0; 의 의미

int main(){
    /*
     * 
     */
    return 0;
}

여기서, return 0의 의미는 다음 2가지이다.

1. 실행중인 "함수의 종료"
2. 함수 호출영역으로 "값의 반환"

cf. C언어는 boolean 타입이 없어서 0만! false, 0 이외의 값이 true로 간주된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts