[C++] C++ 튜토리얼
- -
C++란 무엇인가?
C++는 고성능 애플리케이션을 만드는 데 사용할 수 있는 크로스 플랫폼 언어입니다. C++는 Bjarne Stroustrup이 C 언어를 확장하여 개발했습니다. C++는 프로그래머에게 시스템 리소스와 메모리에 대한 높은 수준의 제어권을 제공합니다.
C++는 C의 확장으로 개발되었으며, 두 언어는 거의 동일한 구문을 가지고 있습니다. C와 C++의 주요 차이점은 C++는 클래스와 객체를 지원하는 반면 C는 지원하지 않는다는 것입니다.
기본 예제
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!"; // cout ( see-out )
return 0; // 모든 C++ 문장은 세미콜론( ; )으로 끝난다.
}
1행: #include <iostream>
은 cout
과 같은 입력 및 출력 객체로 작업할 수 있는 헤더 파일 라이브러리입니다. 헤더 파일은 C++ 프로그램에 기능을 추가합니다.
2번째 줄: using namespace std;
는 표준 라이브러리에서 객체와 변수의 이름을 사용할 수 있다는 의미입니다.
3번째 줄: 빈 줄. C++는 공백을 무시합니다. 하지만 우리는 코드를 더 읽기 쉽게 만들기 위해 그것을 사용합니다.
4번째 줄: C++ 프로그램에서 항상 나타나는 또 다른 것은 int main()
입니다. 중괄호 안의 모든 코드가 실행됩니다.
5번째 줄: cout
(발음은 "see-out")은 삽입 연산자 <<
와 함께 텍스트를 출력/인쇄하는 데 사용되는 객체입니다. 우리의 예에서 "Hello World!"를 출력합니다.
참고: 모든 C++ 문장은 세미콜론으로 끝납니다 ;
.
참고: 본문은 다음과 같이도 작성될 수 있습니다:
int main() { cout << "Hello World! "; return 0; }
기억하세요: 컴파일러는 공백을 무시합니다. 그러나 여러 줄을 쓰면 코드가 더 읽기 쉬워집니다.
6번째 줄: return 0;
는 main 함수를 끝냅니다.
7번째 줄: }
는 main 함수를 실제로 끝내려면 닫는 중괄호를 추가하는 것을 잊지 마세요.
네임스페이스 생략
표준 네임스페이스 라이브러리 없이 실행되는 일부 C++ 프로그램을 볼 수 있습니다. 줄을 using namespace std;
생략하고 키워드로 바꿀 수 있으며 std
, 그 뒤에 ::
연산자가 옵니다.
#include <iostream>
int main() {
std::cout << "Hello World!"; // std::
return 0;
}
새로운 라인
새 줄을 삽입하려면 다음 문자를 사용할 수 있습니다 \n
.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World! \n";
cout << "I am learning C++";
return 0;
}
또한, 다른 <<
연산자를 사용하여 \n
다음과 같이 텍스트 뒤에 문자를 배치할 수도 있습니다.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << "\n";
cout << "I am learning C++";
return 0;
}
두 \n
문자가 연속되면 빈 줄이 생성됩니다.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << "\n\n";
cout << "I am learning C++";
return 0;
}
새 줄을 삽입하는 또 다른 방법은 endl
조작기를 사용하는 것입니다.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
cout << "I am learning C++";
return 0;
}
단일 줄 주석
단일 줄 주석은 두 개의 슬래시( //
)로 시작합니다.
다중 줄 주석
여러 줄로 된 주석은 /*
으로 시작하고 */
으로 끝납니다.
변수
변수는 데이터 값을 저장하는 컨테이너입니다.
C++에는 다음과 같이 다양한 유형의 변수가 있습니다 (다양한 키워드로 정의됨).
int
- 소수점 없이 123이나 -123과 같은 정수(정수)를 저장합니다.double
- 19.99 또는 -19.99와 같은 소수점을 포함한 부동 소수점 숫자를 저장합니다.char
- 'a' 또는 'B'와 같은 단일 문자를 저장합니다. 문자 값은 작은 따옴표로 묶습니다.string
- "Hello World"와 같은 텍스트를 저장합니다. 문자열 값은 큰따옴표로 둘러싸여 있습니다.bool
- 두 가지 상태(참 또는 거짓)로 값을 저장합니다.
상수
다른 사람(또는 자신)이 기존 변수 값을 변경하지 못하도록 하려면 const
키워드를 사용하세요(이렇게 하면 변수가 "상수"로 선언되어 변경 불가능하고 읽기 전용이 됩니다).
사용자 입력
당신은 이미 값을 출력(인쇄)하는 데 사용되는 것을 배웠습니다. 이제 우리는 사용자 입력을 얻는 데 cout
을 사용할 것입니다. cin
는 추출 연산자( >>
)를 사용하여 키보드에서 데이터를 읽는 미리 정의된 변수입니다.
다음 예에서 사용자는 숫자를 입력할 수 있으며, 이 숫자는 변수에 저장됩니다 x
. 그런 다음 값을 인쇄합니다 x
.
int x;
cout << "Type a number: "; // Type a number and press enter
cin >> x; // Get user input from the keyboard ( see-in )
cout << "Your number is: " << x; // Display the input value
비교 연산자
int x = 5;
int y = 3;
cout << (x > y); // returns 1 (true) because 5 is greater than 3
네임스페이스 생략
표준 네임스페이스 라이브러리 없이 실행되는 C++ 프로그램을 볼 수 있습니다. 줄을 using namespace std;
생략하고 키워드로 바꿀 수 있으며 std
, 그 뒤에 ::
for string(and cout) 객체 연산자가 옵니다.
#include <iostream>
#include <string>
// using namespace std; - Remove this line
int main() {
std::string greeting = "Hello";
std::cout << greeting;
return 0;
}
배열의 크기를 구하다
배열의 크기를 구하려면 다음 sizeof()
연산자를 사용하면 됩니다.
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);
구조
구조(structs라고도 함)는 여러 관련 변수를 한 곳으로 그룹화하는 방법입니다. 구조의 각 변수는 구조의 멤버로 알려져 있습니다.
배열과 달리 구조체는 다양한 데이터 유형(int, string, bool 등)을 포함할 수 있습니다.
액세스 구조 멤버
구조체 멤버에 액세스하려면 점 구문( .
)을 사용합니다.
// Create a structure variable called myStructure
struct {
int myNum;
string myString;
} myStructure;
// Assign values to members of myStructure
myStructure.myNum = 1;
myStructure.myString = "Hello World!";
// Print members of myStructure
cout << myStructure.myNum << "\n";
cout << myStructure.myString << "\n";
여러 변수의 하나의 구조
쉼표( ,
)를 사용하면 여러 변수에서 하나의 구조를 사용할 수 있습니다.
struct {
int myNum;
string myString;
} myStruct1, myStruct2, myStruct3; // Multiple structure variables separated with commas
명명된 구조
구조에 이름을 지정하면 데이터 유형으로 취급할 수 있습니다. 즉, 언제든지 프로그램의 어느 곳에서나 이 구조로 변수를 만들 수 있습니다.
명명된 구조를 만들려면 키워드 바로 뒤에 구조 이름을 넣습니다 struct
.
struct myDataType { // This structure is named "myDataType"
int myNum;
string myString;
};
구조를 사용하는 변수를 선언하려면 구조의 이름을 변수의 데이터 유형으로 사용합니다.
myDataType myVar;
예: 두 대의 자동차를 표현하기 위해 하나의 구조를 사용합니다
// Declare a structure named "car"
struct car {
string brand;
string model;
int year;
};
int main() {
// Create a car structure and store it in myCar1;
car myCar1;
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// Create another car structure and store it in myCar2;
car myCar2;
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// Print the structure members
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";
return 0;
}
참조 생성
참조 변수는 기존 변수에 대한 "참조"이며 다음 연산자를 사용하여 생성됩니다 &
.
string food = "Pizza"; // food variable
string &meal = food; // reference to food
이제 변수 이름 food
이나 참조 이름을 사용하여 변수 meal
를 참조할 수 있습니다 food
.
string food = "Pizza";
string &meal = food;
cout << food << "\n"; // Outputs Pizza
cout << meal << "\n"; // Outputs Pizza
C++ 메모리 주소
메모리 주소
이전 페이지의 예에서 연산자 &
는 참조 변수를 만드는 데 사용되었습니다. 하지만 변수의 메모리 주소를 가져오는 데도 사용할 수 있습니다. 즉, 변수가 컴퓨터에 저장된 위치입니다.
C++에서 변수가 생성되면 메모리 주소가 변수에 할당됩니다. 그리고 변수에 값을 할당하면 이 메모리 주소에 저장됩니다.
이에 액세스하려면 연산자를 사용 &
하고 그 결과는 변수가 저장된 위치를 나타냅니다.
그러면 메모리 주소를 아는 것이 왜 유용한가요?
참조와 포인터(다음 장에서 배울 것입니다)는 C++에서 중요합니다. 왜냐하면 이를 통해 컴퓨터 메모리에 있는 데이터를 조작할 수 있기 때문입니다. 이를 통해 코드를 줄이고 성능을 향상시킬 수 있습니다.
이 두 가지 특징은 C++를 Python 이나 Java 등의 다른 프로그래밍 언어와 차별화하는 요소 중 하나입니다.
'[개발] 프로그램 지식' 카테고리의 다른 글
[ERROR] eclipse searching for implementors, the default workspace is in use or cannot be created (0) | 2024.08.16 |
---|---|
[C++] C++ 포인터 이해하기 (0) | 2024.07.08 |
[C++] 참조(&)란? (0) | 2024.07.08 |
[Linux] 리눅스 초보자 필독! 실무에 꼭 필요한 필수 명령어 튜토리얼 (0) | 2024.07.08 |
[ERROR] 웹 사용 중 발생할 수 있는 런타임 에러 및 해결 방법 (0) | 2024.07.05 |
소중한 공감 감사합니다