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; 
}

결과 : 

자료형이 서로 다른&nbsp; 혼합 연산에서는 기억 장소의 크기가 큰 쪽으로 통일시켜 연산이 이루어짐

  • 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