C에서 C++로
입출력 #include int main(void) { // 출력 std::cout
- 프로그래밍 언어/C++
- · 2022. 12. 24.
C언어의 기본 문법이나 OOP(객체지향)에 대한 기본 개념을 알고 있다는 전제로 작성된 글이다. 예제 코드의 간결함을 위해 아래 내용은 생략하고 기록하였다. #include using namespace std; C → C++ // C++ struct Sample { int id; char name[10]; }; /* C typedef struct { int id; char name[10]; } Sample; */ int main(void) { Sample sample = { 1, "DeneV" }; cout
입출력 #include int main(void) { // 출력 std::cout
Name Space namespace는 특정 영역을 분리하는 식별자 역할을 한다. 데이터의 범위를 단순히 전역·지역으로 나누지 않고 namespace를 이용해 구체적으로 지정해 줄 수 있다. namespace test1 { void HelloWorld(void); } namespace test2 { void HelloWorld(void); } test1과 test2라는 독립된 공간을 만들어 HelloWorld라는 같은 이름의 함수가 충돌하지 않도록 분리해 주었다. test1과 test2는 각각의 공간을 식별해주는 namespace가 된다. test1::HelloWorld namespace::함수/변수의 형태로 특정 namespace 내의 데이터를 정의하거나 불러온다. 예시: namespace로 분리하기 ..
구조체 재정의 struct만을 활용해 구조체를 정의할 수 있지만 typedef를 활용하면 구조체를 데이터 타입과 같이 활용할 수 있다. // typedef struct (구조체_이름) { 구조체_필드 } 구조체_자료형_이름; typedef struct { int num; char string[5]; } NewStruct; int main(void) { NewStruct var; return 0; } 구조체 포인터 #include #include typedef struct { int x; int y; } Point; void InitStruct(Point*); int main(void) { Point* p = (Point*) malloc(sizeof * p); if (p == NULL) return -1;..
포인터(Pointer)는 주소값을 저장하는 변수이다. char var = 'A'; 만약 var이라는 변수에 'A'가 저장되어 있다면 var이라는 변수명을 통해 데이터에 접근할 수 있다. 하지만 var 대신 다른 변수에 주소값을 저장하고 사용할 수도 있다. 만약 var이 메모리 100번째에 저장되어 있다면 포인터는 100이라는 주소값을 가지고 있는 것이다. 그리고 이러한 포인터의 주소값을 활용해 해당 변수에 접근할 수 있다. 포인터 선언 // 데이터_자료형* 변수명; char* pointer; char *pointer; char *p1, *p2; 포인터를 선언하기 위해서는 포인터가 가르킬 값의 자료형을 선언해 주어야 한다. 그리고 *을 붙이면 포인터를 선언할 수 있게 된다. *의 위치는 자료형 뒤에 붙이거..
C 언어의 문자열은 char의 배열로 이루어진다. 그리고 배열의 끝은 '\0'(NUL)로 끝난다. "DeneV" {'D', 'e', 'n', 'e', 'V', '\0'} "DeneV"라는 문자열은 "DeneV\0"로 구성되어 있기 때문에 6 Byte의 크기를 가진다. 선언 char str[] = {'D', 'e', 'n', 'e', 'V', '\0'}; char str[] = "DeneV"; char str[5] = "DeneV"; // 주의 char str[5] = "abc"; // {'a', 'b', 'c', '\0', '\0'} 배열과 같은 방식으로 선언하거나 " "(큰 따옴표)를 활용해 선언할 수 있다. 선언된 문자열보다 배열의 크기가 클 경우, 빈 공간은 '\0'로 선언된다. 입출력 char s..