C++
2-1 C문법 정리
리버윤
2023. 9. 13. 12:48
728x90
- C++
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
- C++과 C
#include <iostream> //c++
#include <stdio.h> //c
int main()
{
std::cout << "Hello World!\n"; //c++
printf("Hello World!\n"); //c
}
//c++에는 c가 다 들어있기 때문에 오류가 발생하지 않음 하지만 이렇게 쓰지는 않는다.
- C++ 출력 방법
첫번째,
#include <iostream>
int main()
{
std::cout << "Hello World!\n"; //범위지정연산자인 std:: 사용하는 방법(표준객체의 네임스페이스)
}
두번째,
#include <iostream>
using namespace std; //네임 스페이스로 std;를 사용하는 방법 *잘 사용하지 않는 방법임
int main()
{
cout << "Hello World!\n";
}
세번째,
#include <iostream>
using std::cout; //더 좋은 방법
using std::endl;
//이제부터 cout은 std::cout을 참조하겠다!
int main()
{
cout<<"소프트웨어"<<endl;
return 0;
}
cin : 키보드
cout : 화면
- 나이 입력 받아 출력하기
#include <iostream> // iostream 헤더 파일을 포함. C++의 입출력을 담당하는 기능들이 정의되어 있음.
using std::cout; // std 네임스페이스에서 cout를 직접 사용하겠다는 의미.
using std::cin; // std 네임스페이스에서 cin을 직접 사용하겠다는 의미.
int main() // 프로그램의 시작점인 main 함수 정의.
{
int input; // 정수형 변수 input 선언.
cout << "나이 입력 : "; // 사용자에게 입력 요청 메시지 출력.
cin >> input; // 사용자로부터 입력 받은 숫자를 변수 input에 저장.
cout << "당신의 나이는 " << input << "살 입니다.\n"; // 입력받은 숫자 출력 메시지 출력.
return 0; // 프로그램 종료. 이 함수가 성공적으로 종료되었음을 운영체제에 알림.
}
결과 :
- 여러 변수 값 출력하기
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a, b, c;
a = 100;
b = 200;
c = a + b;
printf("%d, %d, %d\n", a, b, c); //C, 함수
cout << a << ',' << b << ',' << c; //C++, 객체
return 0;
}
- 숫자 입력받아 출력하기 (c -> c++)
C → C++
#include <stdio.h>
#include <iostream>
using std::cout;
using std::cin;
int main(void)
{
int num;
//printf("숫자 하나를 입력하세요=");
cout << "숫자 하나를 입력하세요 = ";
//scanf("%d", &num);
cin >> num;
//printf("입력받은 수는 %d입니다.\n", num);
cout << "입력받은 수는 " << num << "입니다.";
return 0;
} //c
- 토큰(token) 과 구두점
- 구두점(punctuator)
- 예약어(reserved word, keyword)
- 키워드와 대응하는 매크로(macro)
- - C에서 C++로 바꾸기
#include <stdio.h>
int main(void)
{
int num1, num2;
num1 = 100;
num2 = -300;
printf("두 수의 합은 %d입니다.\n", num1 + num2);
return 0;
}
↓
#include <iostream>
using std::cout;
int main(void)
{
int num1, num2;
num1 = 100;
num2 = -300;
cout << "두 수의 합은 " << num1 + num2 << "입니다.";
return 0;
}
- 리터럴(literal)
- 이스케이프 시퀀스(확장 문자열)
두 개의 문자로 보이지만 두 개의 문자가 하나의 의미를 갖는 단일 문자(1byte)
*문자형 주의할 점
#include <stdio.h>
int main()
{
int a = 10;
printf("%c", 'a'); //문자형
printf("%d", a); //정수형, 10 출력
return 0;
}
- 자동 형 변환(implicit arithmetic conversions)
10/4 → 2
10.0/4, 10/4.0, 10.0/4.0 → 2.5
#include <iostream>
using std::cout;
int main(void)
{
cout << 10 / 4 << " " << 10.0 / 4 << " " << 10 / 4.0 << " " << 10.0 / 4.0;
return 0;
}
결과 :
- cast 연산자 (강제 형 변환)
#include <iostream>
using std::cout;
int main(void)
{
cout << (double)10 / 4 << " " << 10.0 / (double)4;
return 0;
}
결과 :
- 증가, 감소 연산자 (전치, 후치)
#include <stdio.h>
int main(void)
{
int a = 10, b = 10, c = 20, d = 20;
int ap, bp, cm, dm;
ap = ++a; // a=a+1; ap=a; ap=11, a=11
printf("a=%d, ap=%d\n", a, ap);
bp = b++; // bp=b; b=b+1; bp=10, b=11
printf("b=%d, bp=%d\n", b, bp);
cm = --c; // c=c-1; cm=c; cm=19, c=19
printf("c=%d, cm=%d\n", c, cm);
dm = d--; // dm=d; d=d-1; dm=20, d=19
printf("d=%d, dm=%d\n", d, dm);
printf("%d\n", dm++);
printf("%d\n", ++dm);
return 0;
}
결과 :
728x90