:: ADVANCE ::

[C/C++] C++ 기능 3 본문

language/C | C++

[C/C++] C++ 기능 3

KSJ14 2014. 9. 16. 01:05
반응형

추가된 함수 기능

 

8. bool타입 자료형

 C++에서는 bool이라는 참과 거짓을 나타내는 자료형을 가지며, C에서는 존재하지 않습니다(최근 표준에서는 C에서도 bool이 기본자료형에 추가되었습니다)
C에서 경험했겠지만, 0은 거짓을 나타내며, 0이 아닌 모든 것은 참이지만, 대표적으로 1을 참으로 나타낸다.
C에서는 이러한 0과 1이라는 것으로 참/거짓을 나타냈지만, C++에서는 bool타입의 자료형이 존재하기 때문에, true와 false라는 키워드가 1과 0을 대신하여 참/거짓을 나타낼 수 있다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>  
using namespace std;  
  
int main()  
{  
    int num = 10;  
    int i = 0;  
    cout<<"true : "<<true<<endl;  
    cout<<"false : "<<false<<endl;  
  
    while(true)  
    {  
        cout<<i++<<' ';  
        if(i>num)  
            break;  
    }  
    cout<<endl;  
  
    cout<<"sizeof 1 : "<<sizeof(1)<<endl;  
    cout<<"sizeof 0 : "<<sizeof(0)<<endl;  
    cout<<"sizeof true : "<<sizeof(true)<<endl;  
    cout<<"sizeof false : "<<sizeof(false)<<endl;  
    return 0;  
}  

 

 

9. 참조자(Reference)

 

 기존의 변수에 새로운 이름을 부여하여 사용하는 것이라고 이해하시면 된다.
자료형 &레퍼런스변수명 = 변수명;
레퍼런스 변수는 반드시 선언하면서 초기화 시켜주셔야 하며,

다른 함수에서 이용된 변수의 값을 변경시킬 때, 함수의 매개변수로 이용하면 매우 편리하다.
Call by Reference에 이용하면, 포인터 변수를 새로 만들지 않아도 되므로, 메모리를 더욱 효율적으로 사용할 수 있다.

 

---// 주소를 이용해서 함수의 결과로 반환하지 않아도 여러 변수를 메모리상에서 수정할 수 있네

---// 함수의 매개변수로 in과 out을 이렇게 만들 수 있는 건가

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>  
using namespace std;  
  
void func(int &c)  
{  
    c=20;  
    cout<<"레퍼런스 변수 c의 주소 : "<<&c<<endl;  
}  
  
int main()  
{  
    int a=5;  
    cout<<"a : "<<a<<endl;  
    cout<<"a의 주소 : "<<&a<<endl;  
    func(a);  
    cout<<"a : "<<a<<endl;  
    return 0;  
}  

 

 

 

* 레퍼런스 변수를 이용한 swap

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>  
using namespace std;  
  
void swap(int &a, int &b)  
{  
    int temp;  
    temp = a;  
    a = b;  
    b = temp;  
}  
  
  
int main()  
{  
    int x=10;  
    int y=20;  
    swap(x, y);  
    cout<<"x : "<<x<<endl;  
    cout<<"y : "<<y<<endl;  
    return 0;  
}  

 

 

10. new & delete

 

new는 동적 공간을 할당할 때 이용합니다
주소변수 = new 자료형;
주소변수 = new 자료형[개수];

delete는 동적 공간을 해제할 때 사용합니다
delete 주소변수;
delete[] 주소변수;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>  
using namespace std;  
  
int main()  
{  
    int *ap = new int[5];  
    int i;  
    for(i=0; i<5; i++)  
    {  
        ap[i] = i;  
    }  
    for(i=0; i<5; i++)  
    {  
        cout<<i+1<<"번째 "<<ap[i]<<endl;  
    }  
    delete[] ap;  
    return 0;  
}  

 

 

11. C언어 표준함수 호출하기

 

C언어의 표준함수는 C++의 라이브러리에도 포함이 되어있다. c를 더하고 .h를 빼고 사용.


#include <stdio.h> -> #include <cstdio>
#include <stdlib.h> -> #include <cstdlib>
#include <math.h> -> #include <cmath>
#include <string.h> -> #include <cstring>

 

반응형

'language > C | C++' 카테고리의 다른 글

[C] auto, static, extern 키워드 의미  (0) 2015.12.16
[C++] Class  (0) 2015.07.13
[C/C++] C++ 기능 2  (0) 2014.09.16
[C/C++] C++ 기능 1  (0) 2014.09.16
[C/C++] C와 C++  (0) 2014.09.16
Comments