※ 입출력 방식
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로 간주된다.
'C | C++ > C언어' 카테고리의 다른 글
this.Code(5)_ 포인터배열 & 배열의 포인터, 배열기반 포인터, 포인터의 포인터 응용 (0) | 2022.11.06 |
---|---|
this.Code(4)_ 문자열 표현, Call-by-Value(함수인자 전달), 포인터와 상수화 ★★★★★ (0) | 2022.11.06 |
this.Code(3)_ 배열과 포인터, 포인터에 의한 간접접근과 직접접근 (2) | 2022.11.06 |
this.Code(2)_ switch문, 반복문, 비트연산자, 함수(argument와 parameter), block scope (0) | 2022.11.06 |
this.Code(0).prev_ C언어 (0) | 2022.11.06 |